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

时间:2016-08-20 10:04:23

标签: java

我不擅长英语,所以标题可能令人困惑。

我想做的事情:

我有一个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];
    }

我该怎么做?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

它应该有用。

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