2

可能重复:
从指数符号解析数字
Decimal.Parse() 是否支持科学记数法?

我正在尝试将 1E-08 等值转换为 C# 中的小数,因为小数是处理资金的首选数据类型,但在 decimal.Parse()“输入字符串格式不正确”时出现错误。不会先转换为浮点数,然后再转换为小数会破坏目的吗?

4

2 回答 2

6

是的,转换为浮动确实会破坏目的。好消息是,您不必在这里这样做!

您可以使用带有 NumberStyles 说明符的 Parse 重载:

decimal d = decimal.Parse("1E-08",
     System.Globalization.NumberStyles.AllowExponent);

当然,如果你只是指定一个硬编码的十进制,你可以使用十进制文字格式:

decimal d = 1E-08M;
于 2012-11-26T19:09:05.063 回答
4

您可以尝试:-

 decimal x = decimal.Parse("1E-08", NumberStyles.Float);
于 2012-11-26T19:11:55.667 回答