zoukankan      html  css  js  c++  java
  • 浮点数字取整的方法

    1.使用Math.floor()

    2.使用位运算符 |

       注意:这种取整方法不适用超过32位整数最大值2147483647的数

       所有位运算符只能用于整数(下面的~也适用),如果是非整数,会先将其转为整数;

       虽然js内部是按照64为浮点数存储,但是位运算的时候是以32位带符号整数进行的.

     function toInt32(x){ 
         return x | 0   // 将不管是整数还是小数转为32位整数
    }  
    toInt32(Math.pow(2, 32) + 1) // 1
    toInt32(Math.pow(2, 32) - 1) // -1
    // 对于大于2的32次方的整数,大于32位的数位都会被舍去。
    toInt32(
    2147483649.4) // -2147483647 js内部采用补码表示负数,减一取反加负号

    3. 使用位运算符 ~~(最快的)

      注意: ~NaN = -1; ~~NaN = 0;  所有的值取反后的结果等于 (-1 - 初始值)

    4. 使用位运算符 ^

      let i = i ^ 0;

    5. 使用位运算符<< 或者 >>

      let i = i << 0;

      let i = i >> 0;

     

    测试速度:https://jsperf.com/number-vs-parseint-vs-plus/26

     

  • 相关阅读:
    MongoDB pymongo模块 删除数据
    MongoDB pymongo模块 查询
    MongoDB pymongo模块 插入数据
    MongoDB pymongo模块 更新数据
    pymongo模块 目录
    POJ 1579
    POJ 1631
    POJ 1573
    POJ 1607
    POJ 1552
  • 原文地址:https://www.cnblogs.com/lyraLee/p/10068984.html
Copyright © 2011-2022 走看看