Javascript中的随机数生成超出范围

时间:2017-01-30 18:18:19

标签: javascript

我的JavaScript程序的随机数生成有时会超出我设置的范围。

我的代码如下:

rand1 = Math.floor(Math.random()*max)+min;

其中我的max是我的数字的上限,min是下限。 当我的min为1时,代码似乎工作正常,但是如果我从10开始并将我的上限设置为55则会混乱。在那个特定的例子中,我有时会得到57,依此类推。

4 个答案:

答案 0 :(得分:2)

这是所有相关的代码。问题是,你做数学随机的事情,然后你把整个事情转移到最大值。试试这个:

function getRandomArbitrary(min, max) {
  return Math.random() * (max - min) + min;
}

答案 1 :(得分:1)

您需要从maxmin获取增量。

rand1 = Math.floor(Math.random() * (max - min)) + min;

答案 2 :(得分:0)

要添加其他答案,这将为您提供包容性范围:

Math.floor(Math.random() * (max - min + 1)) + min;

答案 3 :(得分:0)

嗨,你得到了错误的结果,因为公式错了。 尝试使用

function getRandomArbitrary(min, max) {
  return Math.floow(Math.random() * (max - min) + min);
}

文档source

相关问题