LUA中math.floor()为何在0.1增量下返回错误值?

2026-04-01 20:361阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计606个文字,预计阅读时间需要3分钟。

LUA中math.floor()为何在0.1增量下返回错误值?

当我在每次增加0.1的双倍值上使用Math.floor函数时,我发现一个奇怪的错误。它只发生在0.1的增量从值5开始时。例如:math.floor(4)返回4,但math.floor(5)返回4! 恳请使用以下简单的代码段自行尝试:

当我在每次增加0.1的双值上使用Math.floor函数时,我有一个奇怪的错误.

它仅以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中math.floor()为何在0.1增量下返回错误值?

本文共计606个文字,预计阅读时间需要3分钟。

LUA中math.floor()为何在0.1增量下返回错误值?

当我在每次增加0.1的双倍值上使用Math.floor函数时,我发现一个奇怪的错误。它只发生在0.1的增量从值5开始时。例如:math.floor(4)返回4,但math.floor(5)返回4! 恳请使用以下简单的代码段自行尝试:

当我在每次增加0.1的双值上使用Math.floor函数时,我有一个奇怪的错误.

它仅以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中math.floor()为何在0.1增量下返回错误值?