我想在一个数字的千位上加一个逗号。
String.Format()是正确的路径吗?我应该使用什么格式?
我想在一个数字的千位上加一个逗号。
String.Format()是正确的路径吗?我应该使用什么格式?
当前回答
String.Format("{0:#,###,###.##}", MyNumber)
这将在相关点处给出逗号。
其他回答
请注意,您正在格式化的值应该是数字。 它看起来不像会接受数字的字符串表示,格式是逗号。
c# 7.1(也许更早?)通过字符串插值使这变得简单而美观:
var jackpot = 1_000_000; // underscore separators in numeric literals also available since C# 7.0
var niceNumberString = $"Jackpot is {jackpot:n}";
var niceMoneyString = $"Jackpot is {jackpot:C}";
您可以使用这样的函数来格式化数字,并可选地传入所需的小数点后数位。如果没有指定小数点,它将使用两个小数点。
public static string formatNumber(decimal valueIn=0, int decimalPlaces=2)
{
return string.Format("{0:n" + decimalPlaces.ToString() + "}", valueIn);
}
我使用十进制,但你可以改变类型为任何其他或使用匿名对象。您还可以添加对负小数点值的错误检查。
就这么简单:
float num = 23658; // for example
num = num.ToString("N0"); // Returns 23,658
更多信息在这里
String.Format("{0:#,###,###.##}", MyNumber)
这将在相关点处给出逗号。