大家好,我正在开发一个使用数字精度的软件,但是我有这个问题,当我把一个字符串转换成double时,会输出一个不同的文化.
例如我使用
Convert.ToDouble("4089.90"); // it outputs 40.899,00
在我的电脑中,奇怪的原因是可以正常工作,但在客户端的PC上(在区域设置中具有相同的文化)显示了后者的输出.我知道我可以修复它
Convert.ToDouble("4089.90",System.Globalization.CultureInfo.InvariantCulture);
但是程序中有很多代码使用“Convert.ToDouble”,我不想改变它,另一方面我想明白为什么会发生这种情况.
提前致谢.
解决方法
您可以为您的线程设置文化:
Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;