从四舍五入的数组中查找最接近的整数



我英语不好,所以标题可能会让人困惑。

我要做的事情:

我有一个int数组10, 20, 30,我想根据number变量从中获取数字

如果int number = 10;

我希望"方法"的结果是20

如果int number = 21;

我希望结果是30

我不知道该怎么解释,但我希望这是可以理解的。


这是干什么用的?我有一个可以有不同尺寸9, 18, 27, 36, 45, 54的玩家库存,我有一项内容,例如5。所以我想要库存大小为9。如果项目内容大小为19,则库存大小应为27,而不是18。这就是我的问题。


我尝试了很多不同的迭代和计算,但每次尝试都非常失败。我用这个方法从数组中获得最接近的值,但我不知道如何将其更改为四舍五入。

public int getClosestInteger(int value, int[] numbers) {
        int distance = Math.abs(numbers[0] - value);
        int id = 0;
        for (int i = 1; i < numbers.length; i++){
            int dist = Math.abs(numbers[i] - value);
            if(dist < distance){
                id = i; distance = dist;
            }
        }
        return numbers[id];
    }

我该怎么做

如果我正确理解你的问题,这应该有效:

public int getClosestInteger(int value, int[] numbers) {
    for (int i = 0; i < numbers.length; i++){
        if(value < numbers[i]){
            return numbers[i];
        }
    }
}

它应该可以工作。

    for (int i = 0; i < numbers.length; i++){
        if(numbers[i] > value){
            System.out.println(numbers[i]);
            break;
        }
    }

最新更新