我需要一些可以計算 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
提交
取消