В Lua, как я могу определить, делится ли число поровну на другое число?т.е. без остатка?Я просто ищу логическое значение true или false.
12/6 = 2 (true) 18/6 = 3 (true) 20/6 = 3.(3) (false)
Сравните остаток от деления с нулем, например:
12 % 6 == 0 18 % 6 == 0 20 % 6 ~= 0
Оператор модуля (%) возвращает остаток от деления.Для 12 и 6 это 0, а для 20 и 6 - 2.
%
Используемая формула: a % b == a - math.floor(a/b)*b
a % b == a - math.floor(a/b)*b
Проблема с использованием оператора модуля состоит в том, что он не работает правильно на отрицательных числах. Если вы собираетесь использовать отрицательные числа, используйте math.fmod вместо:
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 >