【问题标题】:Add comma to numbers every three digits using C#使用 C# 将逗号添加到每三位数字
【发布时间】:2015-01-01 04:49:15
【问题描述】:

我想使用 c# 每 3 位为十进制数字添加逗号。
我写了这段代码:

double a = 0; 
a = 1.5;
Interaction.MsgBox(string.Format("{0:#,###0}", a));

但它返回 2。
我哪里错了?
请描述我该如何解决?

【问题讨论】:

标签: c#


【解决方案1】:
 double a = 1.5;
Interaction.MsgBox(string.Format("{0:#,###0.#}", a));

【讨论】:

  • 是的,谢谢,请您描述一下string.Format的第一个参数吗?
  • 在您的格式字符串中,您没有解决数字的小数部分,因此将其四舍五入为 2。所以 .# 在格式字符串中解决了该问题,如果总是希望小数部分为显示,即使是 2.0,然后在格式字符串中使用 .0。
  • 我有一个问题:答案中的格式是否与#,0.#不同?
【解决方案2】:

这是怎么做的:

 string.Format("{0:0,0.0}", a)

【讨论】:

    【解决方案3】:

    有一个standard format string 将分隔千个单位:N

    float value = 1234.512;
    
    value.ToString("N"); // 1,234.512
    String.Format("N2", value); // 1,234.51
    

    【讨论】:

      【解决方案4】:

      它做得对。 #,##0 表示至少写一个数字和零个小数以及带逗号的空格数字组。因此它将 1.5 舍入到 2,因为它不能写小数。尝试 #,##0.00 代替。你会得到 1.50

      【讨论】:

        【解决方案5】:

        试试下面的格式:

        string.Format("{0:#,0.0}", a)
        

        【讨论】:

        • 它可以工作,但是对于数字 10 它返回 10.0,我应该用什么替换 10.0 还是可以改进 string.Format 函数?
        • @shaahin,双打的字符串格式在this article 中有很好的解释。就 10.0 而言,如果您不希望小数点为 0,则可以使用 {0:#,#.#}
        【解决方案6】:

        你试过这样吗:-

        string.Format("{0:0,000.0}", 1.5);
        

        【讨论】:

          猜你喜欢
          • 2010-12-31
          • 1970-01-01
          • 2015-05-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-15
          • 2019-04-11
          相关资源
          最近更新 更多