【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
当当前使用.ToString()
显示小数的值时,准确地喜欢15个小数位,并且由于我使用它来表示美元和美分,因此我只希望输出为2个小数位。
我是否为此使用.ToString()
的变体?
#1楼
这些都不符合我的要求,强制2 dp并向上舍入为0.005 -> 0.01
强制2 dp需要将精度提高2 dp,以确保我们至少有2 dp
然后四舍五入以确保我们不超过2 dp
Math.Round(exactResult * 1.00m, 2, MidpointRounding.AwayFromZero)
6.665m.ToString() -> "6.67"
6.6m.ToString() -> "6.60"
#2楼
decimalVar.ToString ("#.##"); // returns "" when decimalVar == 0
要么
decimalVar.ToString ("0.##"); // returns "0" when decimalVar == 0
#3楼
如果只需要显示此字符,则使用string.Format
String.Format("{0:0.00}", 123.4567m); // "123.46"
http://www.csharp-examples.net/string-format-double/
“ m”是十进制后缀。 关于十进制后缀:
http://msdn.microsoft.com/en-us/library/364x0z75.aspx
#4楼
#5楼
给定十进制d = 12.345; 表达式d.ToString(“ C”)或String.Format(“ {0:C}”,d)得出$ 12.35-注意,使用了当前区域性的货币设置,包括符号。
请注意, “ C”使用当前区域性的位数。 您始终可以使用C{Precision specifier}
覆盖默认值以强制必要的精度,例如String.Format("{0:C2}", 5.123d)
。
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3152365