JS学习--取整方法整理

一. Math对象取整

Math对象提供静态方法:

  • Math.ceil():向上取整
  • Math.floor():向下取整
  • Math.round():四舍五入
Math.ceil(2.4)  // 3
Math.ceil(-2.4)  // -2

Math.floor(2.4) // 2
Math.floor(-2.4) // -3

Math.round(2.4) // 2
Math.round(2.5) // 3
Math.round(2.6) // 3

Math.round(-2.4) // -2
Math.round(-2.5) // -2
Math.round(-2.6) // -3

二. 二进制运算取整

1. 或运算符取整(|)
原理:
二进制或运算符(|)逐位比较两个运算子,两个二进制位之中只要有一个为1,就返回1,否则返回0。
所有的位运算都只对整数有效,遇到小数时,会将小数部分舍去。
所以,将一个小数与0进行二进制或运算,相当于对该数舍去小数位,只取整数位。

注:这种取整方法不适用超过32位整数最大值2^31-1即2147483647的数。

0 | 2 // 2
0 | 2.4 // 2
0 | -2.4 // 2

2147483647 | 0  // 2147483647
2147483648 | 0 // -2147483648

2. 否运算符取整(~)
原理:
二进制否运算符(~)将每个二进制位都变为相反值(0变为1,1变为0)。
对一个整数连续两次二进制否运算,得到它自身。
所有的位运算都只对整数有效,遇到小数时,会将小数部分舍去。
所以,将一个小数与0进行二进制否运算,相当于对该数舍去小数位,只取整数位。

~~2 //2
~~2.4 // 2
~~-2.4 // -2

3. 异或运算符取整(^)
原理:
异或运算(^)在两个二进制位不同时返回1,相同时返回0。
所有的位运算都只对整数有效,遇到小数时,会将小数部分舍去。
所以,将一个小数与0进行二进制异或运算,相当于对该数舍去小数位,只取整数位。

0^2.4 // 2
发布了18 篇原创文章 · 获赞 0 · 访问量 2535

猜你喜欢

转载自blog.csdn.net/weixin_36465540/article/details/89251195