如何将十进制值四舍五入到小数点后两位(用于在页面上输出)

坚强是说给别人听的谎言 提交于 2020-01-06 17:03:36

【推荐】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楼

Math.Round方法(十进制,Int32)


#5楼

给定十进制d = 12.345; 表达式d.ToString(“ C”)String.Format(“ {0:C}”,d)得出$ 12.35-注意,使用了当前区域性的货币设置,包括符号。

请注意, “ C”使用当前区域性的位数。 您始终可以使用C{Precision specifier}覆盖默认值以强制必要的精度,例如String.Format("{0:C2}", 5.123d)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!