我需要将双精度值四舍五入为 2 位数字。
什么是更好的?
String.Format("{0:0.00}", 123.4567); // "123.46"
Math.Round(123.4567, 2) // "123.46"
Math.Round(double,digits)
数字>0在概念上是非常不干净的。但我认为永远不应该使用它。double
是二进制浮点数,因此没有明确定义的十进制数字的概念。
我建议使用string.Format
, 要不就ToString("0.00")
当您只需要舍入以显示小数时,以及decimal.Round
如果您需要对实际数字进行四舍五入(例如在进一步计算中使用它)。
注:与decimal.Round
你可以指定一个MidpointRounding模式。想要的事情很常见AwayFromZero
四舍五入,不ToEven
四舍五入。
With ToEven
四舍五入0.005m
舍入为0.00
and 0.015
舍入为0.02
。这不是大多数人所期望的。
比较:
- ToEven:3.75 轮到 3.8
- ToEven:3.85 轮3.8 (这不是大多数人所期望的)
- AwayFromZero:3.75 轮至 3.8 轮
- AwayFromZero: 3.85 回合3.9
欲了解更多信息,请参阅:https://msdn.microsoft.com/en-us/library/system.math.round.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)