JavaScript 随机数 – 如何在 JS 中生成随机数

在使用 JavaScript 程序时,有时您可能需要生成一个随机数。

例如,您可能希望在开发 JavaScript 游戏(例如猜数字游戏)时生成一个随机数。

JavaScript 有许多用于处理数字和执行数学计算的内置方法。这些方法之一就是Math.random()方法。

在本文中,您将学习如何使用该Math.random()方法检索随机数。

以下是我们将介绍的内容:

  1. Math对象介绍
  2. Math.random()语法分解
    1. 如何生成指定的随机小数max
    2. 如何生成具有指定min和max范围的随机小数
    3. 如何生成具有指定的随机整数max
    4. 如何生成具有指定max包容性的随机整数
    5. 如何生成具有指定min且max包含范围的随机整数

如何在 JavaScript 中使用数学 -Math对象简介

JavaScript 具有Math内置的静态对象,它允许您执行数学计算和运算。

Math对象具有一些内置方法,可以更准确地执行这些操作。

Math对象方法的一般语法如下:

Math.methodName(number);

一些最流行的方法是:

  • Math.round()
  • Math.ceil()
  • Math.floor()
  • Math.random()

让我们看一些如何实现这些方法的示例。

如果要将数字四舍五入到最接近的整数,请使用以下Math.round()方法:

console.log(Math.round(6.2)); // 6

console.log(Math.round(6.3)); // 6

console.log(Math.round(6.5)); // 7

console.log(Math.round(6.8)); // 7

 如果要将数字向上舍入到最接近的整数,请使用以下Math.ceil()方法:

console.log(Math.ceil(6.2));  // 7

console.log(Math.ceil(6.3));  // 7

console.log(Math.ceil(6.5));  // 7

console.log(Math.ceil(6.8));  // 7

 如果要将数字向下舍入到最接近的整数,请使用以下Math.floor()方法:

console.log(Math.floor(6.2));  // 6

console.log(Math.floor(6.3));  // 6

console.log(Math.floor(6.5));  // 6

console.log(Math.floor(6.8)); // 6

 如果要生成随机数,使用Math.random()方法:

console.log(Math.random());

// You will not get the same output

//first time running the program:
// 0.4928793139100267 

//second time running the program:
// 0.5420802533292215

// third time running the program:
// 0.5479835477696466

Math.random()JavaScript 中的方法是什么?- 语法分解

Math.random()方法的语法如下:

Math.random();

该方法不带任何参数。

默认情况下,该方法返回一个介于和之间的随机小数(或浮点数)值。01

需要注意的是,它0包容性的,而1不是包容性的。

因此,它将返回一个大于或等于0且始终小于且从不等于的值1

如何在 JavaScript 中max使用指定的限制生成随机小数Math.random()

如您目前所见,默认情况下,Math.random()生成的数字很小。

如果你想生成一个随机的十进制数,它从 开始,包括,并且0大于1?为此,您指定一个最大数量。

具体来说,您需要将此max数字与 中的随机数相乘Math.random()

例如,如果您想在 和 之间生成一个随机数010您可以执行以下操作

console.log(Math.random() * 10);

// You won't get the same output
//9.495628210218175

在上面的示例中,我将作为限制的max数字 ( ) 与来自 的结果数字相乘。10Math.random()

请记住,在这种情况下,随机数将介于0和之间10- 这意味着大于或等于0且小于且从不等于10

如何在 JavaScript 中使用指定minmax范围生成随机小数Math.random()

如果您想在指定的数字范围内生成一个随机十进制数怎么办?

您在上一节中看到了如何指定 a max,但是如果您希望范围开始0(这是默认的起始范围)怎么办?为此,您还可以指定一个min.

在两个值(或范围)之间生成小数的一般语法类似于以下内容:

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

 我们来看下面的例子:

// specify a minimum - where the range will start
let min = 20.4;

// specify a maximum - where the range will end
let max = 29.8;

我创建了两个变量,min并且max- 其中min将是max范围内的最小数字和最大数字。

接下来,我使用您之前看到的语法在该范围内生成一个随机数

let min = 20.4;
let max = 29.8;

let randomNum = Math.random() * (max - min) + min;

console.log(randomNum);

// You won't get the same output
// 23.309418058783486

这里需要注意的是,它min是包容性的,所以随机数将大于或等于20.4,而max不是包容性的,所以结果将始终是一个小于且永远不等于 的数字29.8

如何在 JavaScript 中max使用指定的限制生成随机整数Math.random()

到目前为止,您已经了解了如何生成随机十进制数。

也就是说,有一种方法可以使用Math.random().

您需要将Math.random()计算结果传递给Math.floor()您之前看到的方法。

通用语法如下:

Math.floor(Math.random());

Math.floor()方法会将随机十进制数向下舍入到最接近的整数(或整数)。

最重要的是,您可以指定一个max数字。

因此,例如,如果您想在0和之间生成一个随机数10,您可以执行以下操作:

console.log(Math.floor(Math.random() * 10));

// You won't get the same output
// 0

max在此示例中,我将数字(10在本例中)与结果相乘,Math.random()并将此计算的结果传递给Math.floor().

这里需要注意的是,随机数将介于0包含和10排除之间。因此,数字可以大于或等于0,小于且永远不等于10

如何在 JavaScript 中max使用指定的包含限制生成随机整数Math.random()

在上一节的示例中,我在数字0(包括)和10(不包括)之间生成了一个随机数。

到目前为止,您已经看到无法生成等于指定的随机数max

如果要生成包含指定最大值的随机数怎么办?

解决方案是1在计算过程中添加。

所以,让我们重温上一节的代码:

console.log(Math.floor(Math.random() * 10));

您现在将重新编写代码,如下所示: 

console.log(Math.floor(Math.random() * 10) + 1);

// You will not get the same output
// 10

这里需要注意的是,这段代码会在1(not 0) 和10-include之间生成一个随机整数10

如何在 JavaScript 中生成具有指定minmax包含范围的随机整数Math.random()

到目前为止,您已经了解了如何使用max您指定的包含值生成随机整数。

正如您在上面的示例中看到的,使max数字包含在内的代码使用数字1作为起始数字,而不是0.

也就是说,有一种方法可以让您指定一个包含的数字范围。为此,您需要指定 aminmax

在上一节中,您看到了如何在指定范围内生成随机数,代码类似。唯一的变化是您将结果传递给Math.floor()方法以将小数四舍五入到最接近的整数。

所以,一般代码如下

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

要使该范围包含,您将执行以下操作: 

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

因此,要在数字(0) (10)之间生成一个随机数,您将编写以下内容: 

let min = 0;
let max = 10;

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

//You will not get the same output
// 0

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农六六

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值