首页 > 代码库 > 取整函数和取整运算符的细节比较

取整函数和取整运算符的细节比较

>>;~~;Math.floor();Math.ceil();parseInt();都可以做到取整的效果,下面看看他们具体的不同点:

 1 console.log(-2.6>>0); 2 console.log(2.6>>0); 3 console.log(~~-2.6); 4 console.log(~~2.6); 5  6 /*number>0 ? Math.floor(number) : Math.ceil(number);*/ 7  8 console.log(Math.floor(-2.6)); 9 console.log(Math.floor(2.6));10 console.log(Math.ceil(-2.6));11 console.log(Math.ceil(2.6));12 13 console.log(parseInt(-2.6));14 console.log(parseInt(2.6));

输出的结果依次是:

 

技术分享

 

可以看出对于>>和~~运算符来说他们相当于parseInt函数不管是正数还是负数都只保留他的整数部分;

 

而Math.floor()向下取整,当为负数的时候取得的是小于这个数的最近的负整数;

 

Math.ceil()向上取整,当为负数的时候取得的是大于这个数的最近的负整数;

 

所以>>或者~~相当于:number>0 ? Math.floor(number) : Math.ceil(number);

取整函数和取整运算符的细节比较