在Lua中,如何判断一个数字是否均匀分配到另一个数字?即没有余数?我只是在寻找一个布尔值为true或false。
12/6 = 2 (true)
18/6 = 3 (true)
20/6 = 3.(3) (false)
答案 0 :(得分:17)
将除法的余数与零进行比较,如下所示:
12 % 6 == 0
18 % 6 == 0
20 % 6 ~= 0
模数运算符(%
)返回除法的余数。对于12和6,它是0,但对于20和6,它是2。
它使用的公式是:a % b == a - math.floor(a/b)*b
答案 1 :(得分:0)
使用模数运算符的问题是,它在负数上无法正常工作。如果您要使用负数,请改用math.fmod
:
maxtothemax@maxtothemax-mint ~ $ lua
> return -13%6
5
> return 13%6
1
> return math.fmod (-13, 6)
-1
> return math.fmod (13, 6)
1
>