当显示当前使用.ToString()的十进制值时,它精确到15位小数,因为我使用它来表示美元和美分,所以我只希望输出为2位小数。
我是否为此使用.ToString()的变体?
当显示当前使用.ToString()的十进制值时,它精确到15位小数,因为我使用它来表示美元和美分,所以我只希望输出为2位小数。
我是否为此使用.ToString()的变体?
当前回答
最适用的解决方案是
decimalVar.ToString("#.##");
其他回答
如果您只是需要显示,请使用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
https://msdn.microsoft.com/en-us/library/dwhawy9k%28v=vs.110%29.aspx
此链接详细说明了如何处理问题,以及如果您想了解更多信息,可以做什么。为了简单起见,您想做的是
double whateverYouWantToChange = whateverYouWantToChange.ToString("F2");
如果你想要一种货币,你可以通过键入“C2”而不是“F2”来简化
decimalVar.ToString("#.##"); // returns ".5" when decimalVar == 0.5m
or
decimalVar.ToString("0.##"); // returns "0.5" when decimalVar == 0.5m
or
decimalVar.ToString("0.00"); // returns "0.50" when decimalVar == 0.5m
给定小数d=12.345;表达式d.ToString(“C”)或String.Format(“{0:C}”,d)产生$12.35-请注意,使用了当前区域性的货币设置,包括符号。
请注意,“C”使用当前区域性中的位数。您可以始终使用C{precision说明符}(如String.Format(“{0:C2}”,5.123d))重写默认值以强制执行必要的精度。
数学舍入方法(十进制,Int32)