【问题标题】:How to trim decimal? [duplicate]如何修剪小数点? [复制]
【发布时间】:2013-04-15 14:01:30
【问题描述】:

我有一个十进制数:

decimal a = 0.8537056986486486486486486486;

我想将它显示为字符串,点后只有 8 位: 一个等于->“0.85370569”。 我该怎么做 ?

【问题讨论】:

标签: c# decimal


【解决方案1】:

例如,像这样:

a.ToString("0.00000000");

【讨论】:

  • 这将四舍五入到 *70
【解决方案2】:

要以数字方式执行此操作,您可以使用:

decimal a = (decimal) 0.8537056986486486486486486486;
String test = (Math.Truncate(100000000 * a) / 100000000).ToString();

【讨论】:

    【解决方案3】:
     decimal a = 0.8537056986486486486486486486;    
     var v=  a.ToString("#.########");
    

    【讨论】:

      【解决方案4】:

      尝试使用

      a.ToString("D8");
      

      这应该将其转换为正确的格式。

      编辑:

      正如 cmets 中所说,D 仅用于整数类型,因此不适用于小数等。 使用

      static void Main(string[] args)
      {
          decimal d = (decimal)0.8537056986486486486486486486;
          Console.WriteLine(d.ToString("N8"));
          Console.ReadLine();
      }
      

      改为。

      这会将其格式化为0.85370570

      【讨论】:

      • 这不只适用于整数类型吗?
      • 不符合msdn
      • @ThaMe90 请阅读 msdn 上的说明:“支持者:仅整数类型。”或者,我弄错了吗?
      • 可能是a.ToString("N8");,但我不确定...
      • 我尝试将它与 decimal 类型一起使用,但它会引发异常:“格式说明符无效。”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-15
      • 2015-11-18
      • 2021-05-11
      • 2017-02-21
      • 1970-01-01
      • 2011-01-20
      相关资源
      最近更新 更多