首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在C#中使用逗号和小数设置数字格式(asp.net MVC3)

在C#中使用逗号和小数设置数字格式(asp.net MVC3)
EN

Stack Overflow用户
提问于 2013-04-16 19:08:41
回答 12查看 228.4K关注 0票数 53

我需要显示一个带有逗号和小数点的数字。

例1:十进制数是432324 (没有逗号和小数点)需要将其显示为432,324.00

但不是432,324

案例2:十进制数是2222222.22 (没有逗号),需要将其显示为2,222,222.22

我试过ToString("#,##0.##")了。但是它没有格式化它。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2013-06-21 18:16:15

代码语言:javascript
复制
int number = 1234567890;
Convert.ToDecimal(number).ToString("#,##0.00");

您将获得结果1,234,567,890.00

票数 104
EN

Stack Overflow用户

发布于 2013-04-16 19:48:39

也许您只是想要标准格式的字符串"N",如

代码语言:javascript
复制
number.ToString("N")

它将使用千个分隔符和固定数量的小数位。千位分隔符的符号和小数点的符号取决于您使用的格式提供程序(通常为CultureInfo),以及小数位数(通常为2,如您所需)。

如果格式提供程序指定了不同的小数位数,并且您不想更改格式提供程序,则可以在N后面提供小数位数,就像在.ToString("N2")中一样。

编辑:逗号之间的组的大小由

代码语言:javascript
复制
CultureInfo.CurrentCulture.NumberFormat.NumberGroupSizes

数组,假设您没有指定特殊的格式提供程序。

票数 38
EN

Stack Overflow用户

发布于 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#程序)。

代码语言:javascript
复制
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));
}

产生:

代码语言:javascript
复制
123 = 123
1234 = 1,234
1234.56 = 1,234.56
123456.789 = 123,456.789
1234.56789123 = 1,234.5679
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16035506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档