随机数。
Math.ceil(); //向上取整。
Math.floor(); //向下取整。
Math.round(); //四舍五入。
Math.random(); //0.0 ~ 1.0 之间的一个伪随机数。【包含0不包含1】 //比如0.8647578968666494
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。所以头尾的分布区间只有其他数字的一半。
获取一个随机数:
function getRandom() {
return Math.round(Math.random()*10)
}
console.log(getRandom())
获取两个数之间的随机数:
function getRandom(min,max) {
return Math.random()*(max-min)+min;
}
console.log(getRandom(1,5))
获取两个数之间的随机整数(含最小值不含最大值):
function getRandomInt(min,max) {
min=Math.ceil(min) //向上取整
max=Math.floor(max)//向下取整
return Math.floor(Math.random()*(max-min)) +min//含最大值,不含最小值
}
console.log(getRandomInt(1,5))
获取两个数之间的随机整数(含最小值也含最大值):
function getRandomIntInclusive(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min; //含最大值,含最小值
}
console.log(getRandomIntInclusive(1,5));
请注意, 由于 JavaScript 中的数字是 IEEE 754 浮点数字,具有最近舍入( round-to-nearest-even)的行为, 因此以下函数的范围 (不包括Math.random () 本身) 并不准确。如果选择了非常大的边界 (253 或更高), 在极罕见的情况下会计算通常-排除(usually-excluded)的上界。
IEEE 754标准的默认模式是最近舍入(舍入为最接近的偶数),它与四舍五入不同的是,对.5的舍入上采用取偶数的方式,即round-to-nearest-even,如:
Round to nearest even:Round(0.5) = 0; Round(1.5) = 2; Round(2.5) = 2;Round(3.5) = 4;
以前一直以为toFixed就是四舍五入的方法,后来又有一段时间以为toFixed是五舍六入。今天终于写的时候,终于才知道toFixed是一个叫做四舍六入无成双的诡异的方法。。。
完全不明白为什么要这么写。。。
什么是四舍六入五成双:百度是这么说的:
对于位数很多的近似数,当有效位数确定后,其后面多余的数字应该舍去,只保留有效数字最末一位,这种修约(舍入)规则是“四舍六入五成双”,也即“4舍6入5凑偶”这里“四”是指≤4 时舍去,"六"是指≥6时进上,"五"指的是根据5后面的数字来定,当5后有数时,舍5入1;当5后无有效数字时,需要分两种情况来讲:①5前为奇数,舍5入1;②5前为偶数,舍5不进。(0是偶数)
所以也就是说: (0.5251).toFixed(2) => 0.53 然而 (0.525).toFixed(2)=>0.52,这并不是我们想用的四舍五入的方法。所以可以这么修改:
var a=1.55;
var b=1.65;
var c=a.toFixed(1);
var d=b.toFixed(1);
console.log(c); //1.6
console.log(d); //1.6