C# WPF C字符串到十进制,十进制到字符串问题
请帮助我识别C代码WPF中的问题,事件处理程序:C# WPF C字符串到十进制,十进制到字符串问题,c#,wpf,string,decimal,C#,Wpf,String,Decimal,请帮助我识别C代码WPF中的问题,事件处理程序: private void Discount5Btn_Click(object sender, RoutedEventArgs e) { decimal catPr; decimal salePr; string catPrStr; catPrStr = PriceCatTBox.Text; catPr = decimal.Parse(catPr
private void Discount5Btn_Click(object sender, RoutedEventArgs e)
{
decimal catPr;
decimal salePr;
string catPrStr;
catPrStr = PriceCatTBox.Text;
catPr = decimal.Parse(catPrStr);
salePr = decimal.Multiply(catPr, 0.95m);
SalePriceTBox.Text = (salePr).ToString("0000.00");
}
dlg.PriceCatTBox.Text = "2300.00";
....
我无法使其工作-调试器在catPr=decimal.ParsecatPrStr;上显示错误。在另一个地方,非常相似的代码可以工作。我在算术运算中使用字符串十进制转换的方法对吗
编辑添加
很抱歉没有指定catPrStr值,它来自另一个事件处理程序中以下代码中的文本框:
private void Discount5Btn_Click(object sender, RoutedEventArgs e)
{
decimal catPr;
decimal salePr;
string catPrStr;
catPrStr = PriceCatTBox.Text;
catPr = decimal.Parse(catPrStr);
salePr = decimal.Multiply(catPr, 0.95m);
SalePriceTBox.Text = (salePr).ToString("0000.00");
}
dlg.PriceCatTBox.Text = "2300.00";
....
然后如上所述:
catPrStr = PriceCatTBox.Text;
我们无法帮助您,因为我们不知道catPrStr的值,您正在从字符串转换为十进制,很可能转换的字符串的值不正确。我们无法帮助您,因为我们不知道catPrStr的值,您正在从字符串转换为十进制,很可能转换的字符串的值不正确。Decimal.tryparsecatpstr,out catPr;并处理它返回的布尔值,以确保您有一个合理的值进行处理。decimal.tryparsecatpstr,out catPr;并处理来自它的bool返回,以确保您有一个合理的值进行处理 我这样做对吗 字符串十进制转换 算术运算 我将使用一个模型设置双向绑定来存储十进制值。这将允许您直接访问它们,而不是解析字符串。这也将解决您的错误 我这样做对吗 字符串十进制转换 算术运算
我将使用一个模型设置双向绑定来存储十进制值。这将允许您直接访问它们,而不是解析字符串。这也将解决您的错误。您确定您的区域性语言环境设置没有干扰吗?如果catPrStr始终处于编辑问题中显示的不变区域性中,则可以使用decimal.tryparsecatpstr、CultureInfo.InvariantCulture;强制使用这种文化。如果未指定区域性,则在当前系统区域性中进行解析,例如,可以使用逗号作为小数分隔符。您确定区域性区域设置没有干扰吗?如果catPrStr始终处于编辑问题中显示的不变区域性中,则可以使用decimal.tryparsecatpstr、CultureInfo.InvariantCulture;强制使用这种文化。如果未指定区域性,则在当前系统区域性中进行解析,例如,可以使用逗号作为小数分隔符。ok。。catPrStr变量的值是多少?谢谢,我在最初的问题editionok中添加了关于catPrStr变量的内容。。catPrStr变量的值是多少?谢谢,我在最初的问题中添加了关于catPrStr变量的内容,因为editionWPF有许多用于数据绑定的钩子,这将使它相对简单。+1 WPF数据绑定和MVVM模式旨在消除手动执行此类转换的必要性。WPF有许多用于数据绑定的钩子,这将使它相对简单。+1WPF数据绑定和MVVM模式旨在消除手动执行此类转换的必要性谢谢,我在初始问题中添加了关于catPrStr变量的内容谢谢,我在初始问题中添加了关于catPrStr变量的内容我没有使用建议的TryParse方法实现代码,但问题确实出在逗号上。更改dlg.PriceCatTBox.Text=2300.00后;至..2300,00。。一切正常。谢谢请注意,如果您硬编码这样的值,它将在其他文化中失败。您可能希望改用dlg.PriceCatTBox.Text=2300.00.ToString0.00作为示例。我没有使用建议的TryParse方法实现代码,但问题确实出在逗号上。更改dlg.PriceCatTBox.Text=2300.00后;至..2300,00。。一切正常。谢谢请注意,如果您硬编码这样的值,它将在其他文化中失败。例如,您可能希望使用dlg.PriceCatTBox.Text=2300.00.ToString0.00。