gpt4 book ai didi

lua - 为什么 Lua 算术不等于自身?

转载 作者:行者123 更新时间:2023-12-04 20:34:56 26 4
gpt4 key购买 nike

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




9年前关闭。




Possible Duplicate:
What is a simple example of floating point/rounding error?



当我执行以下 Lua 代码时:
a = 5.6
b = 14 * 0.4
c = 11.2 / 2
d = 28 * 0.2
print( a == b )
print( a == c )
print( a == d )
print( b == c )
print( b == d )
print( c == d )

我得到以下结果:
false
true
false
false
true
false

有人可以解释为什么 14 * 0.4 和 28 * 0.2 不等于 5.6 吗?

谢谢

最佳答案

您正在处理二进制浮点数的自然不精确性。您的数字 a 可能是 5.5999999999999996 而您的结果 b 可能是 5.6000000000000005,它们不相等。

实际上,这里与 Python 所做的计算相同:

>>> 5.6
5.5999999999999996
>>> 14 * 0.4
5.6000000000000005

这种行为对于二进制浮点数的所有实现都是通用的。

关于lua - 为什么 Lua 算术不等于自身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6366954/

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