如何将十进制值四舍五入到小数点后两位(用于在页面上输出)
时间:2020-03-06 15:03:15 来源:igfitidea点击:
当前使用.ToString()
显示小数的值时,精确到15个小数位是正确的,并且由于我使用它来表示美元和美分,因此我只希望输出为2个小数位。
我是否为此使用.ToString()
的变体?
解决方案
decimalVar.ToString ("#.##"); // returns "" when decimalVar == 0
或者
decimalVar.ToString ("0.##"); // returns "0" when decimalVar == 0
如果只需要显示此字符,则使用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
Math.Round方法(十进制,Int32)
给定十进制d = 12.345;表达式d.ToString(" C")或者String.Format(" {0:C}",d)得出$ 12.35注意,使用了当前区域性的货币设置,包括符号。
请注意," C"使用当前区域性的位数。我们始终可以使用C {Precision specifier}来覆盖默认值,以强制必要的精度,例如String.Format(" {0:C2}",5.123d)。
如果要使用逗号和小数点(但没有货币符号)格式,例如3,456,789.12 ...
decimalVar.ToString("n2");
decimalVar.ToString("F");
这将:
- 四舍五入到小数点后两位。 23.456 => 23.46
- 确保始终有2个小数位,例如。 23 => 23.00,12.5 => 12.50
货币和显示货币金额的理想选择。
有关ToString(" F")的文档:http://msdn.microsoft.com/zh-cn/library/dwhawy9k%28v=vs.110%29.aspx#FFormatString(感谢Jon Schneider)