我已经为文件管理器移动应用程序实现了条形图。我必须在 Y 轴上显示已用空间。
有没有办法计算最接近的一百个最大值?
只是想我会添加这个作为替代方案;由于您仍希望将整个图形放在轴内,因此您可能希望始终向上舍入到下一个更大的 100,而不是最接近的 100。
要对双精度执行此操作,只需使用Math.ceil
, 进行常规舍入Math.round
;
double value = 8239;
double rounded_up = 100 * Math.ceil(value / 100);
System.out.println(rounded_up);
> 8300.0
double rounded_closest = 100 * Math.round(value / 100.0);
System.out.println(rounded_closest);
> 8200.0
这应该有效:
int size = . . .;
int nearestHundred = 100 * ((size + 50) / 100);
解释:除以 100 截断为小于或等于商的最大整数。乘以 100 将商缩放回所需的单位。通过在除之前加上 50,效果是四舍五入到最接近的 100,而不是截断到 100 的最大倍数。(例如,149 变为 100,但 150 变为 200。)