Gần đây tôi đã nâng cấp từ Lua 5.2.3 lên 5.3.1 nhưng tôi nhận thấy tất cả tập lệnh của mình thực hiện string.format
không thành công nếu định dạng a float
sử dụng %d
Định dạng Lua.string không thể định dạng float dưới dạng thập phân (% d) là 5.3
local anExampleString = string.format("Sample Number: %d",10.100000001) -- Fails on 5.3.1, works on 5.2.3
local aWorkingString = string.format("Sample Number: %.0f",10.100000001) -- Works on 5.3.1
Đây có phải là thiết kế không? Tôi dường như không thể tìm thấy sự thay đổi được ghi lại ở bất cứ đâu.
Thiết kế của Lua 5.3 không sạch sẽ theo nhiều cách, f.e. math.tointeger (trong khi tostring & tonumber là trong _G), math.type (chỉ để phân biệt số nguyên và float), math.ult (không cần thiết?), v.v. – Youka
Cảm ơn vì điều đó, tôi đã bỏ lỡ hoàn toàn (mặc dù nó là nơi rõ ràng để xem). Tôi nghĩ rằng tôi đã mong đợi một lưu ý rõ ràng hơn để nói rằng nó đã được thay đổi từ 5,2-> 5,3 như trong [ở đây] (http://www.lua.org/manual/5.3/manual.html#8) – Puddler