关于非整数的Math.random

Bnh*_*bq7 2 lua coronasdk

如何生成小于1的数字?

例如,我想生成从0.1到0.9的数字

我尝试过的:

math.random(0.1,0.9)
Run Code Online (Sandbox Code Playgroud)

Kei*_*son 11

math.random()带有两个参数的Lua 有一个返回指定范围内的整数.

当没有参数调用时,它返回一个介于0.0和1.0之间的伪随机实数.

要获得指定范围内的实数,您需要自己进行缩放; 例如:

math.random() * 0.8 + 0.1
Run Code Online (Sandbox Code Playgroud)

会给你一个0.1到0.9之间的随机实数.更普遍:

math.random() * (hi - lo) + lo
Run Code Online (Sandbox Code Playgroud)

如果你愿意,可以将它包装在你自己的功能中.

但我会注意到这是一个相当特殊的范围.如果你真的想要一个从0.1,0.2,0.3,0.4,...,0.9中选择的随机数,那么你应该生成1到9范围内的整数然后除以10.0:

math.random(1, 9) / 10.0
Run Code Online (Sandbox Code Playgroud)

请记住,大多数实数不能完全以浮点表示.