向下取整函数
常用的JS向下取整函数有两个,分别是parseInt()函数和Math.floor()函数。当我们处理正数的他俩的用法是一致的,但是负数却有所不同,如下:
1.parseInt()
处理数字时,parseInt()会丢弃小数部分,只保留整数部分。例如:
parseInt(3.124); //结果为3
parseInt(-3.124); //结果为-3
结果分别为3 和 -3。
2.Math.floor()
Math.floor()也是JS中用于向下取整的标准函数,无论传入的数值是正数还是负数,均会返回一个小于或等于给定数字的最大整数。例如:
Math.floor(3.124); //结果为3
Math.floor(-3.124); //结果为-4
结果分别为3 和 -4。
综上,需要格外注意的就是两种方法的不同,parseInt()会直接丢弃小数部分,Math.floor()会向下取整到更小的整数,即两者负数取整会有区别。
附录
console.log(parseInt(-3.124)) //-3
console.log(parseInt("-3.124")) //-3
console.log(Math.floor(-3.124)) //-4
console.log(Math.floor("-3.124")) //-4
对于字符串数字也同样起作用,返回值类型均是number。
向上取整函数
Math.ceil()
Math.ceil()是JS中用于向上取整的标准函数,无论传入的数值是正数还是负数,均会返回一个大于或等于给定数字的最大整数
Math.ceil(3.124); //结果为4
Math.ceil(-3.124); //结果为-3
结果分别为4 和 -3。
字符串数字同样效果。
四舍五入函数
Math.round()
当我遇到 -20.5 四舍五入是 -20 时,遇到困惑,查询了官网有解释:
如果参数的小数部分大于 0.5,则舍入到相邻的绝对值更大的整数。如果参数的小数部分小于 0.5,则舍入到相邻的绝对值更小的整数。如果参数的小数部分恰好等于 0.5,则舍入到相邻的在正无穷(+∞)方向上的整数。
这种四舍五入的方法与很多其它语言不同,有些语言采用的是银行家舍入法,需注意❗️
Math.round(20.49); //20
Math.round(20.5); //21
Math.round(-20.5); //-20
Math.round(-20.51); //-21
字符串数字同样效果。