C#+字符串格式

时间:2010-04-19 20:32:39

标签: c#

我觉得我正在尝试做一些简单的事情,但我没有得到我想要的结果。我想显示一个基本数字,总是积极的。我不想要任何前导零,但我想要数千个分隔符。例如,对于以下输入,我想要以下输出:

3 -> 3
30 -> 30
300 -> 300
3000 -> 3,000
30000 -> 30,000
300000 -> 300,000 

目前,为了尝试这样做,我使用以下格式代码:

  string text = "*Based on " + String.Format("{0:0,0}", total) + " entries";

目前,输出如下:

3 -> 03
3000 -> 3,000

当不需要千位分隔符时,您可以看到如何添加前导“0”。如何正确格式化我的数字?

谢谢

6 个答案:

答案 0 :(得分:8)

string.Format(new CultureInfo("en-US"), "{0:N0}", total)

请参阅:Standard Numeric Format Strings

- 或 -

string.Format(new CultureInfo("en-US"), "{0:#,#}", total)

请参阅:Custom Numeric Format Strings

答案 1 :(得分:2)

使用“#,## 0”。

请参阅:Quick Reference for .NET Format Strings

答案 2 :(得分:2)

除了其他好建议之外,您不应该使用字符串连接运算符。只需这样做:

string text = string.Format("*Based on {0:#,##0} entries", total);

这使得阅读更容易,而且工作量更少。

答案 3 :(得分:1)

试试这种格式。

{0:#,##0}

答案 4 :(得分:1)

你也可以这样做:

string text = "*Based on " + total.ToString("#,##0") + " entries"; 

答案 5 :(得分:0)

以下是使用PowerShell的示例。重要的是格式字符串是"{0:n0}"

3, 30, 300, 3000, 30000, 300000, 3000000, 30000000 |
    %{ "{0} -> {0:n0}" -f $_ }

产生:

PS C:\ Users \ Damian> 3,30,300,3000,30000,300000,3000000,3000000 |     %{“{0} - > {0:n0}” - f $ _}

3 -> 3
30 -> 30
300 -> 300
3000 -> 3,000
30000 -> 30,000
300000 -> 300,000
3000000 -> 3,000,000
30000000 -> 30,000,000