String.格式化整数以使用千位分隔符,不带小数位或小整数前导 0

问题描述 投票:0回答:6

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

我是否遗漏了一些明显的东西?

c# string-formatting
6个回答
54
投票

这对我有用。

String.Format("{0:#,0} {1:#,0}", 5, 5000); // 5 5,000

48
投票

试试这个:-

String.Format("{0:n0}",5000) // 5,000
String.Format("{0:n0}",5) // 5
String.Format("{0:n0}",0) // 0

25
投票
String.Format("{0:#,0} {1:#,0}", 5, 5000); // "5 5,000"
    格式字符串中的
  • 0
    表示放置属于此处的数字,或者[前导/尾随]零[以使事物对齐等]。编辑:您肯定希望将 1 作为模式中的最后一位数字,否则零值将呈现为空字符串
  • #
    表示除非此处有有效数字,否则不要将任何内容放入输出中。

编辑(感谢@eulerfx):

  • 最后一部分需要是
    0
    而不是
    #
    (正如我最初的那样),因为零值否则会呈现为零长度字符串。

4
投票

尝试

String.Format("{0:#,#}", 4000);

0
投票

这也有效:

40000.ToString("#,#")


0
投票

随着 C# 6.0 中字符串插值的介绍,有一种更好/更好的方式使用

$
处理字符串并使用
{variable/value[,alignment][:formatString]}
进行字符串格式化。

$"{5:#,0} {5000:#,0}"; // 5 5,000
© www.soinside.com 2019 - 2024. All rights reserved.