gpt4 book ai didi

variables - 第一天 lua - 被 for 循环弄糊涂了

转载 作者:行者123 更新时间:2023-12-01 09:00:02 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Strange for loop problem

(4 个回答)


8 年前关闭。




很简单的问题,但我真的很困惑:P

> for x = 0, 5, 0.2 do
print (x)
end

这个循环只计数到 4.8
(用 0.2 再多走一步就会正好是 5,不是吗?)

但以下 for 循环计数为 5
> for x = 0, 5, 1 do
print (x)
end

有人可以解释或引用手册,这些输出背后的原因。也许我应该将变量定义为浮点数?

最佳答案

Lua 通常在 ieee754 中表示数字binary64格式(“通常”,因为表示实际上取决于底层的 C 实现)。 closest number0.2在 binary64 中是 0x3FC999999999999A ,或大约 0.200000000000000011102230246252 .
0.2在计算发生之前,在源代码中四舍五入到这个数字。

0.200000000000000011102230246252大于 2 ,数字变得大于 5在最后一步,因此循环在大约 4.8 处结束.

关于variables - 第一天 lua - 被 for 循环弄糊涂了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19044246/

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