c# – Convert.ToDouble(“4089.90”)输出40.899,00为什么?

前端之家收集整理的这篇文章主要介绍了c# – Convert.ToDouble(“4089.90”)输出40.899,00为什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
大家好,我正在开发一个使用数字精度的软件,但是我有这个问题,当我把一个字符串转换成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;

猜你在找的C#相关文章