数字 .ToString 有四个重载方法:
ToString()
将数字转换成字符串。
ToString(IFormatProvider)
使用指定的区域性特定格式信息转换为字符串。
n.ToString(System.Globalization.CultureInfo.CurrentCulture)
ToString(String)
使用标准数字格式字符串和自定义数字格式字符串转换为字符串。
我个人比较习惯于自定义数字格式字符串,所以这里举例说明自定义数字格式字符串。
decimal n = 1234567890.567m; _textbox.Text += " " + n.ToString(".00"); // 1234567890.57,四舍五入保留两位小数 _textbox.Text += " " + n.ToString(".0000"); // 1234567890.5670,四舍五入保留四位小数,不足四位补 0 _textbox.Text += " " + n.ToString(".####"); // 1234567890.567,四舍五入保留四位小数,不足四位就算了 _textbox.Text += " " + n.ToString("###,###"); // 1,234,567,891,分组,且四舍五入保留零位小数 _textbox.Text += " " + n.ToString("###,##0"); // 与“###,###”区别是当值为 0 时:“###,###”显示为空,而“###,##0”显示为 0 _textbox.Text += " " + n.ToString("###,###hello"); // 1,234,567,891hello _textbox.Text += " " + n.ToString(".00%"); // 123456789056.70%,使用百分比,保留两位小数,不足两位补 0 _textbox.Text += " " + n.ToString("正数;负数;零"); // 正数
可以看出:
0 表示零占位符。若对应数字存在,则显示数字;否则显示 0。
# 表示数字占位符。若对应数字存在,则显示数字;否则留空。请参见:ToString 中 # 并不“待见”0 。
. 表示小数点。小数点左边的数不使用符号会自动显示,小数点右边的数不使用符号,会被当作保留 0 位小数。当然,如果什么符号都不使用,就相当于 ToString() 了,全部数字都显示。
, 表示分组。
% 表示百分比,会自动乘 100。
; 表示将三个格式字符串分隔开:正数使用第一个格式字符串,负数使用第二个格式字符串,零使用第三个格式字符串。特别注意:小心 C# 数字 ToString 的 “;”部分分隔符。
ToString(String, IFormatProvider)
使用格式字符串和区域性特定格式信息转换为字符串
相关阅读
四舍五入遇 5 往哪靠?-C# ToString 直接往上收