将字符串解析为十进制可在Windows 8上运行,但不适用于Windows 7

时间:2015-04-02 11:18:07

标签: c# wpf .net-4.5

我有一个方法,它接受一个字符串值并将其解析为十进制。这在Windows 8.1上运行得很好但是当我在Windows 7上测试应用程序时它失败了。 Windows 7安装了Dot net Framework 4.5。

可能是什么问题?

以下是方法:

void Save_Details()
{
     //The customer enters dots instead of commas to specify a decimal place
     string Ammount_Now = textbox1.Text.Replace('.', ',');//value text entered is 123.34
     //The value of Ammount_Now is now 123,34
     decimal value = 0;
     bool Ammount_Good = decimal.TryParse(Ammount_Now, out value);

     if(Ammount_Good)
     {
           //continue with method        
           // windows 8 returns true in the decimal.TryParse()
           // windows 7 returns false in the decimal.TryParse()
           // They both use .net framework 4.5
     }
     else
     {
            //failed parsing
     }     

}

1 个答案:

答案 0 :(得分:1)

操作系统版本没有任何问题,您在具有不同语言环境的计算机中测试了代码。

只要在解析时使用正确的CultureInfo,也无需替换小数点来“修复”它们。如果输入文本始终使用.作为小数点,则应使用Decimal.TryParse Method (String, NumberStyles, IFormatProvider, Decimal)重载:

decimal.TryParse(Amount_Now,NumberStyles.Number,CultureInfo.InvariantCulture,out value)