这篇文章主要介绍js取整、取余和取模的实现方法和它们之间的区别,以及Math对象的常用方法函数介绍。
取整
在项目开发过程中,有时要对小数取整操作,JavaScript也提供了4种方法,分别为round()、ceil()、floor()和parseInt()取整。
其中round()是四舍五入取整,ceil() 是向上取整,floor() 是向下取整,parseInt() 只取整数部分。
保留整数部分
Math.parseInt() 方法就是仅取整数部分,也就是不管小数点后的数是否大于5,一律舍弃:
//保留整数部分
parseInt(3/2) // 1
向上取整
Math.ceil() 方法就是向上取整,求最小的整数但不小于本身,例如:
// 向上取整,有小数就整数部分加1
Math.ceil(3/2) // 2
向下取整
Math.floor() 方法就是向下取整,求最大的整数但不大于本身,例如:
// 向下取整,丢弃小数部分
Math.floor(3/2) // 1
四舍五入
如果要求对小数进行四舍五入,请使用 Math.round() 方法,例如:
// 四舍五入
Math.round(3/2) // 2
除此之外还可以使用toFixed方法来实现,比如:
(3/2).toFixed() //2
toFixed(num)返回值为string,把 Number 四舍五入为指定小数位数的数字,num为指定的小数位数。
取余和取模
区别
取余是数学中的概念,取模是计算机中的概念,两者都是求两数相除的余数
1.当两数符号相同时,结果相同,比如:7%4 与 7 Mod 4 结果都是3
2.当两数符号不同时,结果不同,比如
(-7)%4=-3
(-7)Mod4=1
取余运算,求商采用fix函数,向0方向舍入,取 -1。因此 (-7) % 4 商 -1 余数为 -3 取模运算,求商采用 floor 函数,向无穷小方向舍入,取 -2。因此 (-7) Mod 4 商 -2 余数为 1
取余
取余运算符 (%):一个表达式的值除以另一个表达式的值,返回余数。公式:result = numberA % numberB返回值:result,任何变量。
7%4 //3
-7%3 //-1
取模
取模运算可采用如下公式:
Number.prototype.mod = function(n) {
return ((this % n) + n) % n;
}
// 或
function mod(n, m) {
return ((n % m) + m) % m;
}
使用:
mod(-7, 3) //2
(-7).mod(3) //2
(7).mod(3) //1
Math 对象的方法介绍
- abs(x) 返回数的绝对值 1 2 3
- acos(x) 返回数的反余弦值 1 2 3
- asin(x) 返回数的反正弦值 1 2 3
- atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值 1 2 3
- atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间) 1 2 3
- ceil(x) 对一个数进行上舍入。1 2 3
- cos(x) 返回数的余弦 1 2 3
- exp(x) 返回 e 的指数。1 2 3
- floor(x) 对一个数进行下舍入。1 2 3
- log(x) 返回数的自然对数(底为e) 1 2 3
- max(x,y) 返回 x 和 y 中的最高值 1 2 3
- min(x,y) 返回 x 和 y 中的最低值 1 2 3
- pow(x,y) 返回 x 的 y 次幂 1 2 3
- random() 返回 0 ~ 1 之间的随机数 1 2 3
- round(x) 把一个数四舍五入为最接近的整数 1 2 3
- sin(x) 返回数的正弦 1 2 3
- sqrt(x) 返回数的平方根 1 2 3
- tan(x) 返回一个角的正切 1 2 3
- toSource() 代表对象的源代码 1 4 -
- valueOf() 返回一个 Math 对象的原始值