String.Format一个整数,使用千位分隔符,不带小数位或前导0代表小整数

Jus*_*tin 53 c# string-formatting

愚蠢的问题,我想格式化一个整数,以便它出现在1000的分隔符(,),但也没有小数位,没有前导0.

到目前为止,我的尝试是:

String.Format("{0} {1}", 5, 5000);            // 5 5000
String.Format("{0:n} {1:n}", 5, 5000);        // 5.00 5,000.00
String.Format("{0:0,0} {1:0,0}", 5, 5000);    // 05 5,000
Run Code Online (Sandbox Code Playgroud)

我之后的输出是:

5 5,000
Run Code Online (Sandbox Code Playgroud)

有什么明显的东西让我失踪吗?

Ric*_*end 54

这对我有用.

String.Format("{0:#,0} {1:#,0}", 5, 5000); // 5 5,000
Run Code Online (Sandbox Code Playgroud)


Zaf*_*afi 45

试试这个:-

String.Format("{0:n0}",5000) // 5,000
String.Format("{0:n0}",5) // 5
String.Format("{0:n0}",0) // 0
Run Code Online (Sandbox Code Playgroud)

  • 这是迄今为止最好的解决方案,因为它考虑到了用户文化!非常感谢你! (6认同)

Rub*_*ink 25

String.Format("{0:#,0} {1:#,0}", 5, 5000); // "5 5,000"
Run Code Online (Sandbox Code Playgroud)
  • 0在格式字符串中表示放置属于此处的数字,或者[前导/尾随]为零[以使对齐等等].编辑:你肯定希望一个作为模式中的最后一个数字,或者零值将呈现为空字符串
  • # 意味着不要在输出中放入任何东西,除非这里有重要的数字.

编辑(感谢@eulerfx):

  • 最后一部分需要是一个0而不是一个#(正如我最初的那样),因为零值将被渲染为零长度字符串.

  • ```并没有把空间放在任何地方吗?如果那里没有数字,我认为它什么都没做...... (2认同)