【发布时间】:2018-01-22 16:01:56
【问题描述】:
我刚试过:print(math.random(999999999999)),它打印了1。
还有任何包含999999999999 的math.random() 都在打印相同的内容。一些例子:
print(math.random(1.999999999999)) » 1
print(math.random(1999999999999)) » 1
for k,v in next,{math.random(999999999999), math.random(1999999999999), math.random(2.999999999999)} do
print(v)
end
» 1
local n = math.random(999999999999)
print(n==1)
» true
那我想你明白了(如果你当然知道 Lua)。你能解释一下吗?
@编辑:
我使用的 Lua 版本是 5.2。
我也试过print(math.random(-999999999999)),它打印了111711452。看起来它是一个正数。
【问题讨论】:
-
print(math.random(999999999999))在Lua online demo 中对我来说很好用。您使用的是哪个版本的 Lua? -
版本为5.2
-
它在 Lua 5.2 以及 Linux 和 Mac OS X 中对我来说都很好。
-
@Mandy8055 Windows 8.1 操作系统。我已经在使用 Lua 5.2 的 Transformice 游戏上尝试过该脚本。那么问题可能出在您在回答中提到的游戏 API 和/或 Lua 版本上?
-
也许吧!我在 Windows 10 上使用了 Lua 并遇到了同样的问题然后我终于修复了它。但问题的解释与我提到的相同,因为它正在包装溢出的值