为了账号安全,请及时绑定邮箱和手机立即绑定

java中如何获取最接近的9的最大倍数

java中如何获取最接近的9的最大倍数

凤凰求蛊 2023-10-13 16:42:25
我需要一些可以计算 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));


查看完整回答
反对 回复 2023-10-13
?
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 


查看完整回答
反对 回复 2023-10-13
?
隔江千里

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


查看完整回答
反对 回复 2023-10-13
  • 3 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信