你怎么能实现一个舍入函数,它会像往常一样舍入所有数字,除了0.5或它的任何奇数倍到最接近的整数?
例如:
2.899 将被四舍五入 3.02.332 将被四舍五入到 2.02.5也可以向下舍入到2.0(和不3.0)您可以使用BigDecimal如下:
public static double roundHalfDown(double d) {
return new BigDecimal(d).setScale(0, RoundingMode.HALF_DOWN)
.doubleValue();
}
Run Code Online (Sandbox Code Playgroud)
例:
for (double d : new double[] { 2.889, 2.332, 2.5 })
System.out.printf("%.2f -> %.2f%n", d, roundHalfDown(d));
Run Code Online (Sandbox Code Playgroud)
输出:
2.89 -> 3.00
2.33 -> 2.00
2.50 -> 2.00
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2870 次 |
| 最近记录: |