我想知道为什么我的脚本数据无效,然后我尝试测试math.random
,因为它似乎来自它的返回值。这是我从Lua控制台得到的:
> return math.random(0.8, 1.2);
0.8
> return math.random(0.8, 1.2);
0.8
> return math.random(0.8, 1.2);
0.8
> return math.random(0.8, 1.2);
1.8
> return math.random(0.8, 1.2);
0.8
> return math.random(0.8, 1.2);
1.8
> return math.random(0.8, 1.2);
0.8
> return math.random(0.8, 1.2);
1.8
> return math.random(0.8, 1.2);
0.8
我对我得到的结果感到有些困惑。有人可以澄清一下吗?
答案 0 :(得分:7)
http://lua-users.org/wiki/MathLibraryTutorial
upper和lower必须是整数。在其他情况下,Lua将上部转换为整数,有时给出math.floor(上部)和其他math.ceil(上部),具有意外结果(对于较低的结果相同)。
答案 1 :(得分:1)
会说 Yanick Rochon
upper和lower必须是整数。在其他情况下,Lua将上部转换为整数,有时给出math.floor(上部)和其他math.ceil(上部),具有意外结果(对于较低的结果相同)。
因此:
return math.random(0.8,1.2); 0.8
文档参考说:
math.random([m [,n]])此函数是ANSI C提供的简单伪随机生成器函数rand的接口。可以为其统计属性提供保证。)当不带参数调用时,返回[strong>统一伪随机实数,范围为[0,1)。当使用整数m调用时,math.random返回[1,m]范围内的统一伪随机整数。当使用两个整数m和n调用时, math.random返回[m,n]范围内的统一伪随机整数。
font:http://goo.gl/eJvLup