Lua: преобразование из числа с плавающей точкой в int

Хотя Lua не делает различий между числами с плавающей точкой и целыми числами, в некоторых случаях вы хотите использовать целые числа. Каков наилучший способ преобразовать число в целое число, если вы не можете выполнить приведение типа C или без чего-либо подобного Pythonint?

Например, при расчете индекса для массива в

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

Ответы на вопрос(4)

Ваш ответ на вопрос