随机数
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
浮点数计算精度问题解决办法
拓展
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