Несмотря на то, что Lua не различает числа с плавающей запятой и целые числа, в некоторых случаях вы хотите использовать целые числа. Каков наилучший способ преобразовать число в целое, если вы не можете выполнить C-подобное приведение или без чего-то вроде Python int
?
Например, при вычислении индекса для массива в
idx = position/width
как вы можете убедиться, что idx
является допустимым индексом массива? Я придумал решение, которое использует string.find
, но, возможно, есть метод, использующий арифметику, который, очевидно, будет намного быстрее. Мое решение:
function toint(n)
local s = tostring(n)
local i, j = s:find('%.')
if i then
return tonumber(s:sub(1, i-1))
else
return n
end
end