54

愚蠢的问题,我想格式化一个整数,使其与 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

我追求的输出是:

5 5,000

我有什么明显的遗漏吗?

4

5 回答 5

54

这对我有用。

String.Format("{0:#,0} {1:#,0}", 5, 5000); // 5 5,000
于 2009-11-03T10:03:18.690 回答
47

试试这个:-

String.Format("{0:n0}",5000) // 5,000
String.Format("{0:n0}",5) // 5
String.Format("{0:n0}",0) // 0
于 2010-06-16T12:59:17.137 回答
25
String.Format("{0:#,0} {1:#,0}", 5, 5000); // "5 5,000"
  • 0在格式字符串中表示将属于此处的数字,否则将 [前导/尾随] 零 [使事物对齐等]。编辑:你肯定会想要一个作为模式中的最后一个数字,否则零值将呈现为空字符串
  • #意味着除非这里有有效数字,否则不要将任何内容放入输出中。

编辑(感谢@eulerfx):

  • 最后一部分需要是 a0而不是 a #(就像我最初拥有的那样),否则零值将呈现为零长度字符串。
于 2009-11-03T10:03:14.173 回答
4

尝试

String.Format("{0:#,#}", 4000);
于 2009-11-03T10:04:44.497 回答
0

这也有效:

40000.ToString("#,#")

于 2021-11-17T19:27:22.757 回答