将小于1的数字的字符串表示形式转换为双精度

本文关键字:转换 双精度 字符串 小于 数字 表示 | 更新日期: 2023-09-27 18:02:26

转换。ToDouble方法(字符串(将指定的字符串表示形式转换为等效的双精度浮点数。

我有这行代码:double d=转换。ToDouble("0.3"(;

它给了我3.0而不是0.3。对于大于1的数字,它按预期工作。为什么?

将小于1的数字的字符串表示形式转换为双精度

很可能是区域设置问题。在某些区域性中,.不是十进制分隔符。

尝试double.Parse("0.3",CultureInfo.InvariantCulture)

试试这个:

NumberFormatInfo provider = new NumberFormatInfo();
provider.NumberDecimalSeparator = ".";
double d = Convert.ToDouble("0.3", provider);

当前的"区域性"设置是什么?这可能是因为在区域性设置中您正在使用"不是十进制分隔符!