我正在尝试将字符串转换为.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(),但没有成功。
请帮忙!
答案 0 :(得分:15)
它对我有用:
double.Parse("8.493151E-2");
0.08493151
您可能在使用,
作为小数点分隔符的区域设置和.
作为千位分隔符的区域设置中运行。
因此,它被视为8,493,151E-2
,实际上等同于84,931.51
。
将其更改为
double value = double.Parse("8.493151E-2", CultureInfo.InvariantCulture);