.net提供了个函数处理 把string装换成 double
例如:
double d = Convert.ToDouble("2.5")
d:2.5
但是法语系统中 ,字符串2.5会写成2,5 注意是逗号,不是小数点了。
当然一般情况下会正常输出
double d = Convert.ToDouble("2,5")
d: 2,5
但也有不能正确输出的情况,时有发生。 但不是每次都能出现。
我这个项目中 dll都是处理正确的,只有device.exe 中出现了
double d = Convert.ToDouble("2,5")
d: 25
这确实很头疼。以后尽量避免这样的用法。
overstack提供的方式是
In case of your first double (as you ask for it): it seems to be culture related problem, try this it should work (replacing .
with ,
):
Console.WriteLine(Convert.ToDouble("52,8725945"));
In such a case you should parse your string e.g. double.Parse
:
double.Parse("52.8725945", System.Globalization.CultureInfo.InvariantCulture);
On the other hand you have incorrect double later in your string.
解释CultureInfo.InvariantCulture 属性