如何用 JavaScript 在两个数字之间生成一个随机数

Moataz Farid 2023年10月12日
  1. 在 JavaScript 中生成 1 和用户定义值之间的随机数
  2. 用 JavaScript 在两个数字之间生成一个随机数
如何用 JavaScript 在两个数字之间生成一个随机数

本教程将学习如何用 JavaScript 在两个数字之间生成一个随机数。我们将使用 Math.random() 方法在 0.00.999 之间生成一个随机浮动数。

在 JavaScript 中生成 1 和用户定义值之间的随机数

我们可以在 JavaScript 中使用随机数生成器-Math.random(),通过将生成的浮点数与我们想要生成的最大数字相乘来生成一个随机数。Math.random()* max 生成一个 0 和 max 之间的随机数。

function generateRandom(max) {
  return Math.random() * max;
}

console.log('1st try: ' + generateRandom(5));
console.log('2nd try: ' + generateRandom(5));
console.log('3rd try: ' + generateRandom(5));
console.log('4th try: ' + generateRandom(5));

输出:

1st try: 3.3202340813091347
2nd try: 1.9796467067025836
3rd try: 3.297605748406279
4th try: 1.1006700756032417

如果我们只想得到整数格式的结果,我们可以使用 Math.floor(),这个方法返回小于或等于输入数的最大整数。

console.log(Math.floor(1.02));
console.log(Math.floor(1.5));
console.log(Math.floor(1.9));
console.log(Math.floor(1));

输出:

1
1
1
1

通过使用 Math.floor() 方法,我们可以得到随机生成的整数。

function generateRandomInt(max) {
  return Math.floor(Math.random() * max);
}

console.log('1st Integer try: ' + generateRandomInt(9));
console.log('2nd Integer try: ' + generateRandomInt(9));
console.log('3rd Integer try: ' + generateRandomInt(9));
console.log('4th Integer try: ' + generateRandomInt(9));

输出:

1st Integer try: 8
2nd Integer try: 5
3rd Integer try: 7
4th Integer try: 0

用 JavaScript 在两个数字之间生成一个随机数

如果我们还想有一个用户定义的最小值,我们需要将 Math.random() * max 的公式改为 Math.random() * (max-min)) +min。使用该等式,返回值是介于 minmax 之间的随机数。

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

console.log('1st min and max try: ' + generateRandomInt(2, 9));
console.log('2nd min and max try: ' + generateRandomInt(2, 9));
console.log('3rd min and max try: ' + generateRandomInt(2, 9));
console.log('4th min and max try: ' + generateRandomInt(2, 9));

输出:

1st min and max try: 6
2nd min and max try: 2
3rd min and max try: 8
4th min and max try: 3

如果我们有兴趣让 max 值包含在我们的随机发生器范围内,我们需要将等式改为 (Math.random() * (max+1 - min)) +min。在 max-min 上加 1 将包括范围内的最大值,而 Math.floor() 将始终保证该值不超过 max

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

console.log('1st min and max included try: ' + generateRandomInt(2, 9));
console.log('2nd min and max included try: ' + generateRandomInt(2, 9));
console.log('3rd min and max included try: ' + generateRandomInt(2, 9));
console.log('4th min and max included try: ' + generateRandomInt(2, 9));

输出:

1st min and max included try: 3
2nd min and max included try: 7
3rd min and max included try: 9
4th min and max included try: 6

相关文章 - JavaScript Number