Lua: convirtiendo de flotante a int

Incluso aunque Lua no distinga entre números de coma flotante y enteros, hay algunos casos en los que desea usar enteros. ¿Cuál es la mejor manera de convertir un número a un número entero si no puede hacer un reparto tipo C o sin algo como el @ de Pythoint?

Por ejemplo, al calcular un índice para una matriz en

idx = posición / ancho

¿cómo puedes aseguraridx es un índice de matriz válido? Se me ocurrió una solución que usastring.find, pero tal vez hay un método que usa aritmética que obviamente sería mucho más rápido. Mi solución

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

Respuestas a la pregunta(8)

Su respuesta a la pregunta