如何实现一个舍入函数,将除 0.5 或其任何奇数倍之外的所有数字照常舍入到最接近的整数?
例如:
-
2.899
是要四舍五入到3.0
-
2.332
是要向下舍入到2.0
-
2.5
也将向下舍入为2.0
(并不是3.0
)
您可以使用BigDecimal
如下:
public static double roundHalfDown(double d) {
return new BigDecimal(d).setScale(0, RoundingMode.HALF_DOWN)
.doubleValue();
}
Example:
for (double d : new double[] { 2.889, 2.332, 2.5 })
System.out.printf("%.2f -> %.2f%n", d, roundHalfDown(d));
Output:
2.89 -> 3.00
2.33 -> 2.00
2.50 -> 2.00
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)