【问题标题】:1E-08 to decimal [duplicate]1E-08 到十进制 [重复]
【发布时间】:2012-11-14 07:35:48
【问题描述】:

可能重复:
Parse a Number from Exponential Notation
Does Decimal.Parse() support scientific notation?

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

【问题讨论】:

  • 您是否真的想将字符串1E-08 转换为decimal
  • 你确定这不是0x1E - 0x08

标签: c# decimal


【解决方案1】:

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

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

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

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

decimal d = 1E-08M;

【讨论】:

  • 尽管我很高兴 System.Globalization.NumberStyles.AllowExponent 不起作用
  • @user1841964 它对我来说工作正常。打印0,00000001
【解决方案2】:

你可以试试:-

 decimal x = decimal.Parse("1E-08", NumberStyles.Float);

【讨论】:

    猜你喜欢
    • 2013-06-13
    • 2011-04-30
    • 2017-09-28
    • 1970-01-01
    • 2012-10-20
    • 2016-12-27
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    相关资源
    最近更新 更多