Хотя Lua не различает числа с плавающей запятой и целые числа, есть некоторые случаи, когда вы хотите использовать целые числа. Каков наилучший способ скрыть число до целого числа, если вы не можете сделать C-подобный прилив или что-то вроде Python int
?
Например, при вычислении индекса для массива в
idx = позиция/ширина
как вы можете гарантировать, что 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