我需要显示一个带有逗号和小数点的数字。
例1:十进制数是432324 (没有逗号和小数点)需要将其显示为432,324.00
但不是432,324
案例2:十进制数是2222222.22 (没有逗号),需要将其显示为2,222,222.22
我试过ToString("#,##0.##")
了。但是它没有格式化它。
发布于 2013-06-21 18:16:15
int number = 1234567890;
Convert.ToDecimal(number).ToString("#,##0.00");
您将获得结果1,234,567,890.00
。
发布于 2013-04-16 19:48:39
也许您只是想要标准格式的字符串"N"
,如
number.ToString("N")
它将使用千个分隔符和固定数量的小数位。千位分隔符的符号和小数点的符号取决于您使用的格式提供程序(通常为CultureInfo
),以及小数位数(通常为2,如您所需)。
如果格式提供程序指定了不同的小数位数,并且您不想更改格式提供程序,则可以在N
后面提供小数位数,就像在.ToString("N2")
中一样。
编辑:逗号之间的组的大小由
CultureInfo.CurrentCulture.NumberFormat.NumberGroupSizes
数组,假设您没有指定特殊的格式提供程序。
发布于 2014-12-22 00:40:17
我也有同样的问题。我想在电子表格中设置类似"General“格式的数字格式,这意味着如果它们很重要,就显示小数,如果它们不重要,就把它们砍掉。换句话说:
1234.56 => 1,234.56
1234 => 1,234
它需要支持小数点后的最大位数,但如果不需要,不要放在后面的零或点,当然,它需要是文化友好的。我从来没有真正想出一种单独使用String.Format的干净方法,但是String.Format和Regex.Replace的组合以及NumberFormatInfo.CurrentInfo的一些文化帮助完成了这项工作(LinqPad C#程序)。
string FormatNumber<T>(T number, int maxDecimals = 4) {
return Regex.Replace(String.Format("{0:n" + maxDecimals + "}", number),
@"[" + System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator + "]?0+$", "");
}
void Main(){
foreach (var test in new[] { 123, 1234, 1234.56, 123456.789, 1234.56789123 } )
Console.WriteLine(test + " = " + FormatNumber(test));
}
产生:
123 = 123
1234 = 1,234
1234.56 = 1,234.56
123456.789 = 123,456.789
1234.56789123 = 1,234.5679
https://stackoverflow.com/questions/16035506
复制相似问题