max*_*axp 17 .net formatting string-formatting number-formatting
我有一个十进制数字,比如1234.500.
我想让它显示1,234.4
我目前正在将其转换为双倍以删除尾随的'0'.
string.Format("{0:0,0}",1234.500)删除小数位,其他格式选项似乎使用两个小数位.
有人能提供见解吗?
Hen*_*man 24
您应该使用自定义格式 #,##0.00
string s = string.Format("{0:#,##0.00}", xx);
Run Code Online (Sandbox Code Playgroud)
1,234.50当xx = 1234.5M
忘记转换时会产生double,这对真的没有帮助.
roh*_*agg 11
您是否知道.NET内置支持根据应用程序的每个用户的区域设置正确格式化数字?利用用户自己的区域设置可能更好(.NET框架已经知道所有正确的设置).
但是,如果要修复应用程序以在特定区域设置中格式化数字,仍然可以使用您选择的特定区域设置,并强制.NET将其用作所有格式(不仅仅是数字)的基础:
using System.Globalization;
using System.Threading;
...
CultureInfo us = new CultureInfo("en-US");
Run Code Online (Sandbox Code Playgroud)
然后
Thread.CurrentThread.CurrentUICulture = us;
Run Code Online (Sandbox Code Playgroud)
要不就
Console.WriteLine(d.ToString("c", us));
Run Code Online (Sandbox Code Playgroud)
您应该知道,使用逗号作为千位分隔符适用于英国和美国,但不是数千应该在其他国家/地区显示
"一百二十五在美国显示为1,025,在德国显示为1.025.在瑞典,千位分隔符是一个空间"
MSDN专门讨论了这个主题,他们称之为"全球化"(即如果你需要寻找更多细节,这是一个很好的搜索术语).该页面描述了如何使用井号作为数字占位符来删除尾随零(正如Henk Holterman在之前的评论中所建议的那样).
另请参见自定义数字格式字符串.
另一种选择:
decimal d = 1234.56m;
string s = d.ToString("N"); // 1,234.56
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42662 次 |
| 最近记录: |