Tôi có một lỗi lạ khi tôi sử dụng Math.floor chức năng trên các giá trị gấp đôi tăng lên của 0,1 mỗi lần.LUA (Corona SDK) Math.floor() trả về giá trị sai với tăng 0,1
Nó chỉ xảy ra với một tăng là 0,1 và bắt đầu từ giá trị 5
dụ: Math.floor (4) trả nhưng Math.floor (5) trả !!!
Bạn có thể thử nó cho mình, với mảnh này mã đơn giản:
for i=3,7,0.1 do
print("val : "..i.." floor : "..math.floor(i))
end
Dưới đây là kết quả của đoạn code trên:
Corona Simulator[1494:707] val : 3 floor : 3
Corona Simulator[1494:707] val : 3.1 floor : 3
Corona Simulator[1494:707] val : 3.2 floor : 3
Corona Simulator[1494:707] val : 3.3 floor : 3
Corona Simulator[1494:707] val : 3.4 floor : 3
Corona Simulator[1494:707] val : 3.5 floor : 3
Corona Simulator[1494:707] val : 3.6 floor : 3
Corona Simulator[1494:707] val : 3.7 floor : 3
Corona Simulator[1494:707] val : 3.8 floor : 3
Corona Simulator[1494:707] val : 3.9 floor : 3
Corona Simulator[1494:707] val : 4 floor : 4
Corona Simulator[1494:707] val : 4.1 floor : 4
Corona Simulator[1494:707] val : 4.2 floor : 4
Corona Simulator[1494:707] val : 4.3 floor : 4
Corona Simulator[1494:707] val : 4.4 floor : 4
Corona Simulator[1494:707] val : 4.5 floor : 4
Corona Simulator[1494:707] val : 4.6 floor : 4
Corona Simulator[1494:707] val : 4.7 floor : 4
Corona Simulator[1494:707] val : 4.8 floor : 4
Corona Simulator[1494:707] val : 4.9 floor : 4
Corona Simulator[1494:707] val : 5 floor : 4
Corona Simulator[1494:707] val : 5.1 floor : 5
Corona Simulator[1494:707] val : 5.2 floor : 5
Corona Simulator[1494:707] val : 5.3 floor : 5
Corona Simulator[1494:707] val : 5.4 floor : 5
Corona Simulator[1494:707] val : 5.5 floor : 5
Corona Simulator[1494:707] val : 5.6 floor : 5
Corona Simulator[1494:707] val : 5.7 floor : 5
Corona Simulator[1494:707] val : 5.8 floor : 5
Corona Simulator[1494:707] val : 5.9 floor : 5
Corona Simulator[1494:707] val : 6 floor : 5
Corona Simulator[1494:707] val : 6.1 floor : 6
Corona Simulator[1494:707] val : 6.2 floor : 6
Corona Simulator[1494:707] val : 6.3 floor : 6
Corona Simulator[1494:707] val : 6.4 floor : 6
Corona Simulator[1494:707] val : 6.5 floor : 6
Corona Simulator[1494:707] val : 6.6 floor : 6
Corona Simulator[1494:707] val : 6.7 floor : 6
Corona Simulator[1494:707] val : 6.8 floor : 6
Corona Simulator[1494:707] val : 6.9 floor : 6
Corona Simulator[1494:707] val : 7 floor : 6
Nếu nó có thể giúp đỡ, nếu chúng ta áp dụng một modulo 1 về kết quả của giá trị lỗi, chúng tôi nhận được kết quả là: 0.99999999999999
thể trùng lặp của [? Tại sao Lua số học không bằng bản thân] (http://stackoverflow.com/câu hỏi/6366954/tại sao-là-lua-số học-là-không-bằng-chính nó) – finnw