Javascript - 获取最小和最大范围内的随机数。独家

时间:2016-11-15 18:42:54

标签: javascript random

我想知道在min和max之间生成随机浮点数的最佳方法是什么。 min和max都是 EXCLUSIVE

例如,min = -1,max = 100.然后随机数可以是-0.999或99.999,但不能是-1或100.

我提出的方法是首先生成-1(包括)和100(不包括)之间的随机数:

Math.random()*(max-min)+min

如果该值等于-1,则获取另一个随机数,直到它不为-1。

整个事情将是:

var min = -1, max = 100;
var rand = min;
while(rand==min)
    rand = Math.random()*(max-min)+min;

是否有更好的方法可以这样做,所以我不必多次运行Math.random()

2 个答案:

答案 0 :(得分:3)

您可以先检查随机数,只使用不等于零的值。

var min = -1,
    max = 100,
    r;

while (!(r = Math.random()));        // generate and check and use only r !== 0 values
console.log(r * (max - min) + min);

答案 1 :(得分:1)

只需使用您的代码删除具有所需精确度的限制

var p = 0.000001; //desired precission
var min = -1+p, max = 100-p;
rand = Math.floor(Math.random()*(max-min)+min)