-1

我已经为文件管理器移动应用程序实现了条形图。我必须在 Y 轴上显示已用空间。

有没有办法计算最接近的一百个最大值?

4

2 回答 2

3

只是想我会添加这个作为替代方案;由于您仍希望将整个图形放在轴内,因此您可能希望始终向上舍入到下一个更大的 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
于 2013-05-31T08:24:54.293 回答
1

这应该有效:

int size = . . .;
int nearestHundred = 100 * ((size + 50) / 100);

解释:除以 100 截断为小于或等于商的最大整数。乘以 100 将商缩放回所需的单位。通过在除之前加上 50,效果是四舍五入到最接近的 100,而不是截断到 100 的最大倍数。(例如,149 变为 100,但 150 变为 200。)

于 2013-05-31T05:48:14.883 回答