📅  最后修改于: 2023-12-03 15:01:47.022000             🧑  作者: Mango
在 JavaScript 中,我们通常使用 Math.random()
函数来生成随机数。但是,该函数生成的随机数并不是十进制数,而是介于 0 和 1 之间的小数。这意味着如果我们需要生成指定范围内的整数随机数,需要进行一些特殊处理。
为了生成指定范围内的整数随机数,我们可以使用如下方法:
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}
在上述函数中,getRandomInt(min, max)
接收两个参数,即最小值和最大值。Math.ceil(min)
表示将最小值向上取整,Math.floor(max)
表示将最大值向下取整。然后我们使用 (max - min + 1)
计算可能的整数个数,接着使用 Math.random()
生成一个介于 0 和 1 之间的小数,再将其乘以可能的整数个数,得到一个介于 0(含)和可能的整数个数(不含)之间的小数。最后将其向下取整,并将结果加上最小值,即可得到一个介于最小值和最大值之间的整数随机数。
如果需要生成指定范围内的浮点数随机数,可以使用如下方法:
function getRandomFloat(min, max, decimalPlaces = 2) {
const rand = Math.random() * (max - min) + min;
return parseFloat(rand.toFixed(decimalPlaces));
}
在上述函数中,getRandomFloat(min, max, decimalPlaces)
接收三个参数,即最小值,最大值和保留的小数位数(默认为 2)。我们使用 Math.random()
生成一个介于最小值和最大值之间的小数,然后使用 toFixed(decimalPlaces)
方法将其转换为一个保留指定小数位数的字符串。最后使用 parseFloat()
方法将其转换回一个浮点数。
JavaScript 中的随机数不是十进制数,而是介于 0 和 1 之间的小数。如果需要生成指定范围内的随机数,需要进行一些特殊处理,具体方法如上所述。