使用String.Format为数字和。添加逗号

时间:2010-03-30 13:41:36

标签: c#

使用String.Format如何确保所有数字在每3个数字后都有逗号 例如23000 =“23,000”,0返回“0”。

String.Format(“{0:n}”,0); //给出0.00我不想要的。 我不想要任何小数位,所有数字都是整数。

7 个答案:

答案 0 :(得分:53)

你可以做到这一点,我觉得它有点清晰,可以阅读:

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

示例:

string.Format("{0:#,###0}", 123456789); // 123,456,789
string.Format("{0:#,###0}", 0); // 0

答案 1 :(得分:25)

如果您当前的文化输入使用逗号作为千位分隔符,则可以将其格式化为小数为零的数字:

String.Format("{0:N0}", 0)

或者:

0.ToString("N0")

答案 2 :(得分:4)

来自msdn

double value = 1234567890;
Console.WriteLine(value.ToString("#,#", CultureInfo.InvariantCulture));

显示1,234,567,890

答案 3 :(得分:2)

如果没有其他解决方案适合您,您也可以使用CultureInfo对象玩一下:

        var x = CultureInfo.CurrentCulture;
        x.NumberFormat.NumberDecimalSeparator = ",";
        x.NumberFormat.NumberDecimalDigits = 0;
        x.NumberFormat.NumberGroupSizes = new int[] {3};

答案 4 :(得分:1)

您可以在N之后加上一个数字来指定小数位数:

String.Format("{0:n0}", 0) // gives 0

答案 5 :(得分:0)

我标记了另一个答案,然后发现零值是一个空字符串。

        System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("de-DE");
        System.Threading.Thread.CurrentThread.CurrentCulture = ci;

        double x = 23232323.21;
        string y = x.ToString("#,0", System.Globalization.CultureInfo.CurrentCulture);

该字符串在当前文化中返回,因此y = 23.232.323

当x = 0时,

y = 0.

答案 6 :(得分:0)

你刚才这样说:

Console.WriteLine(**$**"Your current amount of money is: **{yourVar:c}**");