我的JavaScript程序的随机数生成有时会超出我设置的范围。
我的代码如下:
rand1 = Math.floor(Math.random()*max)+min;
其中我的max是我的数字的上限,min是下限。 当我的min为1时,代码似乎工作正常,但是如果我从10开始并将我的上限设置为55则会混乱。在那个特定的例子中,我有时会得到57,依此类推。
答案 0 :(得分:2)
这是所有相关的代码。问题是,你做数学随机的事情,然后你把整个事情转移到最大值。试试这个:
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
答案 1 :(得分:1)
您需要从max
和min
获取增量。
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