JavaScript的向下、向上取整以及四舍五入函数

146 阅读2分钟

向下取整函数

常用的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

字符串数字同样效果。