Mặc dù Lua không phân biệt giữa số dấu phẩy động và số nguyên, có một số trường hợp khi bạn muốn sử dụng số nguyên. Cách tốt nhất để bí mật một số thành một số nguyên là gì nếu bạn không thể làm một diễn viên giống như C hoặc không có cái gì đó giống như của Python int
?Lua: chuyển đổi từ phao sang int
Ví dụ khi tính toán một chỉ số cho một mảng trong
idx = vị trí/chiều rộng
làm thế nào bạn có thể đảm bảo idx
là một chỉ số mảng hợp lệ? Tôi đã đưa ra một giải pháp sử dụng string.find
, nhưng có thể có một phương pháp sử dụng số học rõ ràng sẽ nhanh hơn nhiều. Giải pháp của tôi:
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
Bạn có thể mở rộng câu trả lời này để xử lý các số âm bằng cách ném vào một số thanh: 'math.floor (math.abs (x))' – Ziggy