Java转到下一个5000

时间:2014-06-19 05:05:47

标签: java math calculus

我正在寻找一些java math.round公式,它可以转换为最近的5000值。 假设值为15555,则应转换为20000.如果值为18555,则还应转换为20000(因为这应该给出下一个5000范围)。 到目前为止,我正在尝试这个:

Math.round(value/ 5000.0) * 5000.0)

但是如果值是15555,这给了我15000.我希望这是20000

2 个答案:

答案 0 :(得分:6)

您正在寻找Math.ceil(),而不是Math.round()

Math.ceil(value/ 5000.0) * 5000.0

还将nearest integer functionfloor and ceiling functions

进行比较

答案 1 :(得分:2)

我可能更喜欢使用基本整数运算(假设value是非负整数):

int remainder = value % 5000;
int result = remainder == 0 ? value : value - remainder + 5000;