我需要一些可以计算 9 的最接近的最大倍数的东西。例如,如果我在这个函数中输入 1,它将返回 9,如果我在这个函数中输入 10,它将返回 18,依此类推。我已经尝试过这个9*(Math.round(number/9)),9*(Math.ceil(Math.abs(number/9)))但它们返回最接近的 9 的倍数,因此,如果您在该函数中输入 10,它将返回 9,出于我的目的,它将需要返回 18。(可能有更好的方法来表达这一点,然后“最近的最高值”)如果有人能帮助我那就太好了!
3 回答
Cats萌萌
TA贡献1805条经验 获得超9个赞
您可以使用这个公式。
number + (9 - (number % 9))
对于数字是 9 的倍数的特殊情况,请使用条件:
int result = number % 9 == 0 ? number : number + (9 - (number % 9));
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
只需添加 1(最多)9 次,然后检查它是否是 9 的倍数,如下所示:
int x = 9;
int result = 0;
for (int i = x; i < 9; i++)
{
if (i % 9 == 0)
{
result = i;
break;
}
}
// result will contains the 'nearest' 'highest' or it self multiple of 9
隔江千里
TA贡献1906条经验 获得超10个赞
您可以尝试定义一个乘数,其值取决于 number 是否是 9 的倍数。检查下面的代码:
int number = 10;
Double ceilValue = Math.ceil(number/9);
double multiplier = 0.0;
if (number % 9 == 0) {
multiplier = ceilValue;
} else {
multiplier = ceilValue + 1;
}
Double result = 9 * multiplier;
System.out.println(result);
输出:18.0
添加回答
举报
0/150
提交
取消