double.Parse(字符串)的值错误

Kai*_*Kai 4 .net double parsing

我正在尝试将字符串转换为.Net 3.5中的double值.到目前为止很容易

double.Parse(value);
Run Code Online (Sandbox Code Playgroud)

我的问题是指数标签的值没有正确转换.例:

double value = double.Parse("8.493151E-2");
Run Code Online (Sandbox Code Playgroud)

该值应该是= 0.0893151对吗?但事实并非如此!值是= 84931.51 !!!

怎么可能?我完全糊涂了!

我读了msdn库中的引用,它确认支持像"8.493151E-2"这样的值.我还尝试使用NumberStyles重载double.Parse(),但没有成功.

请帮忙!

SLa*_*aks 15

这个对我有用:

double.Parse("8.493151E-2");  
0.08493151
Run Code Online (Sandbox Code Playgroud)

您可能正在使用,小数分隔符和.千位分隔符的区域设置中运行.
因此,它被视为8,493,151E-2,实际上相当于84,931.51.

将其更改为

double value = double.Parse("8.493151E-2", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)