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