科学计数法转换为

科学计数法转换为

This question already has answers here:
Parse a Number from Exponential Notation

(9个答案)


4年前关闭。





我已经尝试过这两个代码:

1)

Decimal h2 = 0;
Decimal.TryParse("-8.13E-06", out h2);


2)

Decimal.Parse(Convert.ToString(used[row, column].Value), NumberStyles.AllowExponent | NumberStyles.AllowDecimalPoint);


但它不适用于-8.13E-06值。

还有其他更好的选择来将科学计数法转换为十进制吗?

提前致谢。

最佳答案

如果您的文化使用“。”作为分隔符:

decimal d = Decimal.Parse("-8.13E-06", System.Globalization.NumberStyles.Float);


或者,您可以指定InvariantCulture

decimal d = Decimal.Parse("-8.13E-06", System.Globalization.NumberStyles.Float, CultureInfo.InvariantCulture);


或如您的示例所示:

Decimal h2 = 0;
Decimal.TryParse("-8.13E-06", NumberStyles.Float, CultureInfo.InvariantCulture, out h2);

10-08 04:51