📜  javascript 随机数不是十进制 - Javascript (1)

📅  最后修改于: 2023-12-03 15:01:47.022000             🧑  作者: Mango

JavaScript 随机数不是十进制

在 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 之间的小数。如果需要生成指定范围内的随机数,需要进行一些特殊处理,具体方法如上所述。