如何将整数舍入到最接近的100? 例如,497将轮到500,98轮到100,1423轮到1400.
答案 0 :(得分:8)
我除以100,然后再乘以:
int initial = ...;
int rounded = (int) Math.round(initial/100.0) * 100;
注意除以100.0
而不是100
,所以你要用浮点运算进行除法。
答案 1 :(得分:1)
另一种方法是,避免浮点运算和可能的精度误差是这样的:
int value = 497;
int rounded = 0;
int remainder = value % 100;
if (remainder >= 50) {
rounded = value - remainder + 100;
} else {
rounded = value - remainder;
}
或更简单:
int rounded = ((value + 50) / 100) * 100;
答案 2 :(得分:0)
小演示:
int[] values = { 497, 98, 1423 };
for (int value : values) {
int rounded = (int) Math.round(value / 100.0) * 100;
System.out.format("Before: %4d Rounded: %4d%n", value, rounded);
}