在处理大数字(64位值)时,Lua似乎无法正常工作。我试图计算以下内容:
71776119061217280 + 281474976710655
或在hexa
0x00FFFFFFFFFFFF
+ 0xFF000000000000
Lua 5.1 , 5.2 , 5.3 全部返回
72057594037927936 (= 0x100000000000000)
无需拿出计算器就可以看出这是错误的。添加到奇数的偶数不是偶数。事实上,它似乎偏离1(正确的结果是 72057594037927935 )。在hexa中,问题更加明显,因为结果应该是 0xFFFFFFFFFFFFFF 。 任何人都知道发生了什么,或者我在这里做错了什么?
有关信息,我在Windows 10上看到ZeroBrane Studio。
答案 0 :(得分:2)
什么颠覆Lua 5.3
?就像在linux(amd64)机器上一样,我得到:
$ lua
Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio
> 71776119061217280 + 281474976710655
72057594037927935
>