用科学记数法解析十进制
本文关键字:十进制 | 更新日期: 2023-09-27 17:49:15
我有点困惑,为什么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文档)
From MSDN:
NumberStyle。浮动
表示使用AllowLeadingWhite、AllowTrailingWhite、AllowLeadingSign、AllowDecimalPoint和AllowExponent样式。这是一个合数样式。
如果你不允许小数点,4.06...
将不会解析。
注意NumberStyle.Float
还包括AllowExponent
,所以您不需要单独指定。这应该可以自己工作:
Decimal.Parse("4.06396113432292E-08", System.Globalization.NumberStyles.Float)
System.Globalization.NumberStyles。AllowExponent允许解析的字符串包含以"E"或"E"字符开头的指数。
要允许在有效位数或尾号中使用小数分隔符或符号,必须使用System.Globalization.NumberStyles.Float.
来自MSDN的注释: AllowExponent
It 不允许在有效位中使用小数分隔符或符号尾数;要允许解析字符串中的这些元素,请使用AllowDecimalPoint和AllowLeadingSign标志,或者使用复合样式包括这些单独的标志。