如何获得最接近的数字?

所以,我一直在想如何在给定两个数字的情况下获得最接近的数字(一开始可能很难理解,所以我会举个例子)

例子:

1. 数字 4 需要被 5 整除,但由于它并没有被整除,我们需要找到最接近的数字。在这种情况下,最接近的数字是 5.

2. 网格系统定义了标记位置(0,52.4)是否可以被数字(5,这是网格大小)整除。问题是,它需要找到最接近网格大小(5)的方法。它将使用给定的数字和给定的网格大小。所以,像这样:标记位置:(5.85,52.4),网格大小:5,最接近的途径:(5,50)

3. 数字 93.594664 需要被 9 整除,但它并不完全是 90 或 9。所以,在这里最接近的途径将是 90。我该如何得到这个数字?

我已经尽力了。没什么能够起作用的。 如果有人知道如何做到这一点,请评论。

点赞
用户4403144
用户4403144
function closest(n, d) -- n为数字,d为可被整除的数
    local remainder = n % d
    local c -- closest:最接近的数

    if remainder >= (d / 2) then
        c = (n + (d - remainder))
    else
        c = (n - remainder)
    end

    print(c)
end

然后:

closest(4, 5) -- 打印 5
closest(5.85, 5) -- 打印 5
closest(52.4, 5) -- 打印 50
closest(93.594664, 9) -- 打印 90
2018-07-24 03:05:59