我有点困惑为什么 NumberStyles.AllowExponent 单独不能用科学记数法解析我的十进制。

这会引发异常:

Decimal.Parse("4.06396113432292E-08",
    System.Globalization.NumberStyles.AllowExponent)

然而,这不会:
Decimal.Parse("4.06396113432292E-08",
    System.Globalization.NumberStyles.AllowExponent
    | System.Globalization.NumberStyles.Float)

我没有看到 NumberStyle.Float 添加了什么(我不了解它的 MSDN 文档)。

最佳答案

来自 MSDN :



如果您不允许使用小数点,则 4.06... 将不会解析。

请注意, NumberStyle.Float 还包括 AllowExponent ,因此您无需单独指定。这应该自己工作:

Decimal.Parse("4.06396113432292E-08", System.Globalization.NumberStyles.Float)

10-06 09:56