如何实现一个舍入函数,将除 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();
}
示例:
for (double d : new double[] { 2.889, 2.332, 2.5 })
System.out.printf("%.2f -> %.2f%n", d, roundHalfDown(d));
输出:
2.89 -> 3.00
2.33 -> 2.00
2.50 -> 2.00
关于java - 在 Java 中舍入 .5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27450766/