在处理大数字(64 位值)时,Lua 加法似乎不起作用。我尝试计算以下内容:
71776119061217280 + 281474976710655
或十六进制
0x00FFFFFFFFFFFF
+ 0xFF000000000000
Lua 5.1、5.2和5.3全部回归
72057594037927936 (= 0x100000000000000)
不用拿出计算器就能知道这是错误的。偶数与奇数相加不是偶数。事实上,它似乎偏离了1(正确的结果是72057594037927935)。在十六进制中,问题更加明显,因为结果应该是0xFFFFFFFFFFFFFF。 有人知道发生了什么事,或者我在这里做错了什么?
更新:
有关信息,我在 ZeroBrane Studio 上看到了这一点在 Windows 10 上。
最佳答案
Lua 5.3
的什么颠覆?在 Linux (amd64) 机器上,我得到:
$ lua
Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio
> 71776119061217280 + 281474976710655
72057594037927935
>
关于Lua添加错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49098445/