将逗号分隔符千位分隔符(.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?