C# WPF C字符串到十进制,十进制到字符串问题

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

请帮助我识别C代码WPF中的问题,事件处理程序:

        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。