C# - 将字符串转换为double时出现意外结果

时间:2011-10-07 16:52:03

标签: c#

我有一个值为“20.616378139”的字符串,当我尝试使用Convert.ToDouble或Double.Parse进行转换时,我得到了正确值的20616378139.0。

为什么会发生这种情况,我应该如何解决?

3 个答案:

答案 0 :(得分:16)

您可能生活在世界中小数点写为逗号的地方。修正:

var str = "20.616378139";
var dbl = double.Parse(str, System.Globalization.CultureInfo.InvariantCulture);

答案 1 :(得分:-2)

Parse方法有一个重载,提供某种选项参数;这是您可以指定它来处理科学记数法等的方法。请尝试明确设置。如果可行,请查看您正在使用的默认文化信息设置。

答案 2 :(得分:-2)

我已经使用过这个命令,之前没有问题。

string s =“20.616378139”;             double d = Convert.ToDouble(s); ![在此输入图像说明] [1]