我正在尝试将字符串转换为 .Net 3.5 中的 double 值。到目前为止很容易
double.Parse(value);
我的问题是带有指数标签的值没有正确转换。
例子:
double value = double.Parse("8.493151E-2");
该值应该是 = 0.0893151 对吗?
但事实并非如此!
值是 = 84931.51!!!
这个怎么可能?
我完全糊涂了!
我阅读了 msdn 库中的引用资料,它确认支持“8.493151E-2”等值。我还尝试使用 NumberStyles 重载 double.Parse(),但没有成功。
请帮忙!
最佳答案
这个对我有用:
double.Parse("8.493151E-2");
0.08493151
您可能在使用
,
作为十进制分隔符和 .
作为千位分隔符的语言环境中运行。因此,它被视为
8,493,151E-2
,实际上相当于 84,931.51
。将其更改为
double value = double.Parse("8.493151E-2", CultureInfo.InvariantCulture);
关于.net - double.Parse(string) 的值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3238108/