Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中获得9的最接近最高倍数_Java_Math - Fatal编程技术网

如何在java中获得9的最接近最高倍数

如何在java中获得9的最接近最高倍数,java,math,Java,Math,我需要能计算出9的最接近的最高倍数的东西。例如,如果我在这个函数中输入1,它将返回9,如果我在这个函数中输入10,它将返回18,依此类推 我尝试过这个9*(Math.round(number/9))和9*(Math.ceil(Math.abs(number/9))但是它们返回的是9的最接近倍数,所以如果你在这个函数中输入10,它将返回9,出于我的目的,它需要返回18。(或许有更好的方式来表达“最接近的最高点”) 如果有人能帮我,那就太好了 你可以使用这个公式 number + (9 - (num

我需要能计算出9的最接近的最高倍数的东西。例如,如果我在这个函数中输入1,它将返回9,如果我在这个函数中输入10,它将返回18,依此类推

我尝试过这个
9*(Math.round(number/9))
9*(Math.ceil(Math.abs(number/9))
但是它们返回的是9的最接近倍数,所以如果你在这个函数中输入10,它将返回9,出于我的目的,它需要返回18。(或许有更好的方式来表达“最接近的最高点”)


如果有人能帮我,那就太好了

你可以使用这个公式

number + (9 - (number % 9))
对于数字为9的倍数的例外情况,请使用以下条件:

int result = number % 9 == 0 ? number : number + (9 - (number % 9));

你可以用这个公式

number + (9 - (number % 9))
对于数字为9的倍数的例外情况,请使用以下条件:

int result = number % 9 == 0 ? number : number + (9 - (number % 9));

您可以尝试定义一个乘数,其值取决于数字是否为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

您可以尝试定义一个乘数,其值取决于数字是否是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

只需添加一个(最多)9次,然后检查它是否是9的倍数,如下所示:

intx=9;
int结果=0;
对于(int i=x;i<9;i++)
{
如果(i%9==0)
{
结果=i;
打破
}
}
//结果将包含“最近的”“最高的”或其自身倍数9
只需添加一(最多)9次,然后检查它是否是9的倍数,如下所示:

intx=9;
int结果=0;
对于(int i=x;i<9;i++)
{
如果(i%9==0)
{
结果=i;
打破
}
}
//结果将包含“最近的”“最高的”或其自身倍数9

9是10中9的最接近倍数。。。9不是比18更接近10吗?不如在
Math.ceil
的结果中加1,然后再乘以9。@Sweeper一旦一个数字超过需要的倍数,就返回下一个倍数。如果你输入9,它会返回9,但是一旦你到了10,它会返回18,一旦你到了19,它会返回27,依此类推。我不擅长措辞,如果你不明白,很抱歉。负数呢?-10是输出-9还是-18?@清扫器负数在我的用例中并不重要,我只需要正数。9是10中9的最近倍数。。。9不是比18更接近10吗?不如在
Math.ceil
的结果中加1,然后再乘以9。@Sweeper一旦一个数字超过需要的倍数,就返回下一个倍数。如果你输入9,它会返回9,但是一旦你到了10,它会返回18,一旦你到了19,它会返回27,依此类推。我不擅长措辞,如果你不明白,很抱歉。负数呢?-10是输出-9还是-18?@Sweeper负数在我的用例中并不重要,我只需要正数。我已经编辑过,以包括示例输出。此外,检查了不同的输出,似乎给出了正确的结果。抱歉删除了我以前的评论,意识到这是一个打字错误。很抱歉这是可行的,但我会尽量避免使用浮点数学。我相信下面的@hossein-rasekhi解决方案更优雅、更快。我也编辑了一些示例输出。此外,检查了不同的输出,似乎给出了正确的结果。抱歉删除了我以前的评论,意识到这是一个打字错误。很抱歉这是可行的,但我会尽量避免使用浮点数学。我相信下面的@hossein rasekhi解决方案更优雅、更快。这对我来说是最优雅的,当数字已经是9的倍数时,我通过添加边缘大小写进行编辑。这对我来说是最优雅的,当数字已经是9的倍数时,我通过添加边缘大小写进行编辑。