我想在一个数字的千位上加一个逗号。

String.Format()是正确的路径吗?我应该使用什么格式?


当前回答

我发现这是最简单的方法:

myInteger.ToString("N0")

其他回答

我尝试了上面的许多建议,但下面的建议更适合我:

string.Format("{0:##,###.00}", myValue)

但是当你有像0.2014这样的值时,它会失败,因为我使用。21

string.Format("{0:#,##0.00}", myValue)

如果你想要特定文化,你可能想试试这个:

使用命名空间:"using System.Globalization;"

(19950000.0)。ToString("N",new CultureInfo("en-US")) = 19,950,000.00

(19950000.0)。ToString("N",new CultureInfo("is-IS")) = 19.950.000,00

印度文化: (19950000.0)。ToString("N",new CultureInfo("hi-IN"))= 1,99,50,000.00

注意:一些区域性使用,表示小数而不是。所以要小心。

就这么简单:

float num = 23658; // for example 
num = num.ToString("N0"); // Returns 23,658

更多信息在这里

您需要相同的格式值和特定于区域性。

 Double value= 1234567;
 value.ToString("#,#.##", CultureInfo.CreateSpecificCulture("hi-IN"));

输出:34567

投票最多的答案很好,7年来一直很有帮助。随着c# 6.0的引入,特别是字符串插值,有了一种更整洁,在我看来更安全的方法来完成要求在数字的千位处添加逗号:

var i = 5222000;
var s = $"{i:n} is the number"; // results to > 5,222,000.00 is the number
s = $"{i:n0} has no decimal"; // results to > 5,222,000 has no decimal

其中变量i被放置在占位符(即{0})的位置。所以不需要记住哪个物体到哪个位置。格式(即:n)没有改变。要了解最新的完整功能,您可以访问这个页面。