gpt4 book ai didi

LUA (Corona SDK) math.floor() 返回错误值,增量为 0.1

转载 作者:行者123 更新时间:2023-12-04 17:51:23 26 4
gpt4 key购买 nike

我在使用 时遇到了一个奇怪的错误Math.floor 对以 递增的 double 值的函数0.1 每一次。

它仅以 0.1 的增量发生并从值 5 开始

例如:math.floor(4) 返回 4 但 math.floor(5) 返回 4 !!!

你可以自己试试,用这段简单的代码:

for i=3,7,0.1 do 
print("val : "..i.." floor : "..math.floor(i))
end

这是上面代码的结果:
 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

如果它可以提供帮助,如果我们申请了 模 1 在错误值的结果上,我们得到以下结果: 0.99999999999999

最佳答案

浮点数是魔鬼。不要将它们用作循环计数器。

for i = 30, 70 do 
local i = i / 10
print("val : "..i.." floor : "..math.floor(i))
end

关于LUA (Corona SDK) math.floor() 返回错误值,增量为 0.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15524099/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com