Skip to main content

随机数

js 可以使用 Math(算数) 对象来实现随机数的生成。

Math 对象方法

方法描述
ceil(x)对数进行上舍入,即向上取整
floor(x)对数进行下舍入,即向下取整
round(x)四舍五入
random()返回 0 ~ 1 之间的随机数,包含 0 不包含 1

ceil()向上取整

定义和用法 ceil() 方法可对一个数进行上舍入。

如果参数是一个整数,该值不变。

注意:ceil() 方法执行的是向上取整计算,它返回的是大于或等于函数参数,并且与之最接近的整数。

实例:对一个数进行上舍入

Math.ceil(1.4)

输出结果:

2

floor()向下取整

定义和用法 floor() 方法返回小于等于x的最大整数。

如果传递的参数是一个整数,该值不变。

实例:返回小于等于x的最大整数

Math.floor(1.6);

输出结果:

1

round()四舍五入

定义和用法 round() 方法可把一个数字舍入为最接近的整数。

注意: 2.49 将舍入2 , 2.5 将舍入 3。

实例:round() 方法可把一个数字舍入为最接近的整数

Math.round(2.5);

输出结果:

3

random()随机数

定义和用法 random() 方法可返回介于 0(包含) ~ 1(不包含) 之间的一个随机数。

实例:返回介于 0(包含) ~ 1(不包含) 之间的一个随机数

Math.random();

输出结果:

0.9908168466959575

一些实例说明

Math.ceil(Math.random()*10);     // 获取从 1 到 10 的随机整数,取 0 的概率极小。

Math.round(Math.random()); // 可均衡获取 0 到 1 的随机整数。

Math.floor(Math.random()*10); // 可均衡获取 0 到 9 的随机整数。

Math.round(Math.random()*10); // 基本均衡获取 0 到 10 的随机整数,其中获取最小值 0 和最大值 10 的几率少一半。

因为结果在 0~0.4 为 0,0.5 到 1.4 为 1,8.5 到 9.4 为 9,9.5 到 9.9 为 10。所以头尾的分布区间只有其他数字的一半。

生成 [n,m] 的随机整数

函数功能:生成 [n,m] 的随机整数。

在 js 生成验证码或者随机选中一个选项时很有用。

//生成从minNum到maxNum的随机数
function randomNum(minNum,maxNum){
switch(arguments.length){
case 1:
return parseInt(Math.random()*minNum+1,10);
break;
case 2:
return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10);
break;
default:
return 0;
break;
}
}

随机获取两位小数

生成一个介于m~n之间的有2位小数的数值

(Math.random()*(n-m) + m).toFixed(2)

FAQ

浮点数计算精度问题解决办法

引用地址:https://www.cnblogs.com/Marydon20170307/p/8831055.html

拓展

abs()绝对值

定义和用法:abs() 方法可返回一个数的绝对值。

实例:返回一个数的绝对值

Math.abs(-7.25);

输出结果:

7.25

parseInt()向下取整

定义和用法:同floor()一样,方法返回小于等于x的最大整数。

实例:返回小于等于x的最大整数

parseInt(1.6);

输出结果:

1

min()最小值

定义和用法:min()用于返回两个参数中的最小值。

Math.min(1,2)

输出结果:

1

max()最大值

定义和用法:max()用于返回两个参数中的最大值。

Math.max(1,2)

输出结果:

2

参考

js生成随机数