将逗号分隔符千位分隔符(.net)

我有一个十进制数,比如1234.500。

我想让它显示1,234.4

我目前将它转换为双精度去除尾随的'0'。

string.Format(“{0:0,0}”,1234.500)删除小数位,其他格式化选项似乎使用两个小数位,无论如何。

谁能提供见解?


您应该使用自定义格式,如#,##0.00

string s = string.Format("{0:#,##0.00}", xx);

将产生1,234.50当XX = 1234.5M
忘记转换为double ,这不会真的有帮助。


您是否知道.NET根据您的应用程序的每个用户的区域设置,已经内置了对正确格式化数字的支持? 利用用户自己的区域设置可能会更好(.NET框架已经知道所有正确的设置)。

但是,如果您想修复应用程序以在特定的区域设置中格式化数字,则仍然可以选择特定的区域设置并强制.NET将其用作所有格式化的基础(而不仅仅是数字):

using System.Globalization;
using System.Threading;
...
CultureInfo us = new CultureInfo("en-US");

接着

Thread.CurrentThread.CurrentUICulture = us;

要不就

Console.WriteLine(d.ToString("c", us));

您应该意识到,使用逗号作为千位分隔符适用于英国和美国,但不应该如何在其他国家显示数千个

“一千二十五个在美国显示为1,025,在德国显示为1.025,在瑞典,千位分隔符是一个空间”

MSDN有专门的部分专门讨论这个话题,他们称之为'全球化'(也就是说,如果你需要寻找更多的细节,这是一个很好的搜索术语)。 该页面描述了如何使用英镑符号作为数字占位符来消除尾随零(正如Henk Holterman在之前的评论中所建议的那样)。

另请参阅自定义数字格式字符串。


另一种选择:

decimal d = 1234.56m;
string s = d.ToString("N");    // 1,234.56
链接地址: http://www.djcxy.com/p/50535.html

上一篇: Add comma thousand separator to decimal (.net)

下一篇: How to send an email with Gmail as provider using Python?