Convert.ToDouble Method(String)将指定的数字表示形式转换为等效的双精度浮点数。
我有这行代码: double d = Convert.ToDouble(“0.3”);
它给了我3.0而不是0.3。对于大于1的数字,它按预期工作。 为什么呢?
答案 0 :(得分:6)
很可能是语言环境问题。有些文化中.
不是小数点分隔符。
尝试double.Parse("0.3",CultureInfo.InvariantCulture)
答案 1 :(得分:1)
试试这个:
NumberFormatInfo provider = new NumberFormatInfo();
provider.NumberDecimalSeparator = ".";
double d = Convert.ToDouble("0.3", provider);
答案 2 :(得分:0)
目前的文化设置是什么?这可能是因为在文化环境中你使用'。'不是小数分隔符!