将一个数转换为整数

将一个数转换为整数

  • JavaScript 里面提供了好几种方法,让我们把一个数转换为一个整数,比如有以下三种
    • Math.floor(), Math.ceil(), Math.round():最优,最常用
    • 位运算符:运算效率略高,但是可读性差,而且只能转换 32 位整数,不常用
    • parseInt():适用于将字符串转换为整数,不适合将一个数转换为整数
  • 它们都有各自的适用范围和优缺点,但是我们实际开发中最常用的,还是第一种,也就是 Math 对象提供的 3 个函数
  • 这 3 个函数在转换正数的时候,其结果是不言而喻的,但是当涉及到负数时,就似乎变得有点难以理解了
  • 现在笔者将它们的工作原理总结如下,正负数通吃。首先,我们需要在纸上画一条一维坐标轴(初中数学知识)
    • 如果传入的数是一个整数或者是一个「不正常」的数 ( NaN, Infinity, -Infinity ),这三个函数都会将其原样返回
    • 如果传入的数是一个小数,那么我们定位到坐标轴上这个小数的位置,然后
      • Math.floor() 会从它的左边开始,找到离它最近的那个整数,并将其返回
        • Math.floor(1.2) === 1
        • Math.floor(1.5) === 1
        • Math.floor(1.7) === 1
        • Math.floor(-1.2) === -2
        • Math.floor(-1.5) === -2
        • Math.floor(-1.7) === -2
      • Math.ceil() 会从它的右边开始,找到离它最近的那个整数,并将其返回
        • Math.ceil(1.2) === 2
        • Math.ceil(1.5) === 2
        • Math.ceil(1.7) === 2
        • Math.ceil(-1.2) === -1
        • Math.ceil(-1.5) === -1
        • Math.ceil(-1.7) === -1
      • Math.round() 会从它的左边和右边同时开始,找到离它最近的那个整数,并将其返回
        • 如果传入的小数刚好处于两个整数的正中间 ( 比如 1.5 ),那么只会从右边开始找整数
          • Math.round(1.2) === 1
          • Math.round(1.5) === 2
          • Math.round(1.7) === 2
          • Math.round(-1.2) === -1
          • Math.round(-1.5) === -1
          • Math.round(-1.7) === -2

总结

  • 这只是一个很小的知识点,但是很多书或者文章都解释得不太清楚
  • 这里我们只需要引入一个数学工具(坐标轴),一切都变得明晰起来
    原文作者:水剑承王
    原文地址: https://www.jianshu.com/p/9f491fff9401
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞