如何将整数舍入到最接近的100?例如,497舍入到500,98舍入到100,1423舍入到1400。
cwdobuhd1#
我会除以100,四舍五入,然后再次相乘:
int initial = ...; int rounded = (int) Math.round(initial/100.0) * 100;
注意,要除以100.0,而不是100,因此您使用浮点运算进行除法。
100.0
100
qybjjes12#
另一种避免浮点运算和可能的精度错误的方法是沿着以下路线的东西:
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;
8dtrkrch3#
1.除以一百1.圆形1.乘以100小型演示:
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); }
3条答案
按热度按时间cwdobuhd1#
我会除以100,四舍五入,然后再次相乘:
注意,要除以
100.0
,而不是100
,因此您使用浮点运算进行除法。qybjjes12#
另一种避免浮点运算和可能的精度错误的方法是沿着以下路线的东西:
或者更简单:
8dtrkrch3#
1.除以一百
1.圆形
1.乘以100
小型演示: