print(2^62)
print(2^63)
print(2^64)
在Lua 5.2中,所有数字都是双打的。上面代码的输出是:
4.6116860184274e+18
9.2233720368548e+18
1.844674407371e+19
Lua 5.3支持整数,并在整数和浮点表示之间进行自动转换。相同的代码输出:
4611686018427387904
-9223372036854775808
0
我想获得浮动结果。 2.0^64
有效,但如果它不是文字,那该怎么办?
local n = io.read("*n") --user input 2
print(n^64)
一种可能的解决方案是将数字除以1
:(n/1)^64
,因为在/
除法中,操作数总是转换为浮点数,但我正在寻找更多优雅的解决方
在Lua 5.3.0 (work2)上进行了测试。
答案 0 :(得分:4)
io.read("*n")
总是返回一个浮点数。所以没有惊喜。
如果您需要将整数转换为浮点数,请向其添加0.0
。