商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何在 JavaScript 中利用 Math.ceil() 和 Math.floor() 执行向上向下取整

如何在 JavaScript 中利用 Math.ceil() 和 Math.floor() 执行向上向下取整

  发布于2026-07-08 阅读(0)

扫一扫,手机访问

在 Ja vaScript 里处理数字取整,Math.ceil()Math.floor() 是一对很容易混淆但又极其常用的方法。先给你个最直观的印象:Math.ceil() 向上取整,返回大于或等于原数的最小整数,比如 Math.ceil(-2.9) 的结果是 -2Math.floor() 向下取整,返回小于或等于原数的最大整数,比如 Math.floor(-1.2) 的结果是 -2。两者都不改变原值,只是返回一个新的整数。

如何在 Ja vaScript 中利用 Math.ceil() 和 Math.floor() 执行向上向下取整

简单来说,Math.ceil() 就是“只要有小尾巴就往大里走”,而 Math.floor() 则是“不管尾巴多大都直接扔掉,只留整数部分”——当然这只适用于正数。一旦遇到负数,逻辑就得跟着数轴方向来理解。下面展开细说。

向上取整:Math.ceil()

这个方法的特点是:无论小数部分多小,哪怕只有 0.0001,也会往下一个整数进位。对于负数来说,“向上”指的是朝向数轴右侧、更接近零的方向。

  • Math.ceil(3.1) → 4
  • Math.ceil(7) → 7(整数不变)
  • Math.ceil(-2.9) → -2(因为 -2 是大于 -2.9 的最小整数)
  • Math.ceil(-5) → -5

向下取整:Math.floor()

这个方法直接舍去小数部分,向负无穷方向取整。负数时结果会比原数更小(也就是更远离零)。

  • Math.floor(4.9) → 4
  • Math.floor(0.1) → 0
  • Math.floor(-1.2) → -2(因为 -2 小于 -1.2,是小于等于 -1.2 的最大整数)
  • Math.floor(-8) → -8

常见使用场景与技巧

这两个方法在分页计算、栅格布局、数组分块等需要整数边界控制的场合特别常用。举几个例子:

  • 分页总页数Math.ceil(总条数 / 每页条数)。比如 25 条数据、每页 10 条,Math.ceil(25/10) 得到 3 页。
  • 获取第 n 个元素所在页码(从 1 开始)Math.floor((n - 1) / 每页条数) + 1
  • 避免浮点误差:直接对浮点数运算后再取整可能出错,比如 Math.floor(0.1 + 0.2) 返回 0(因为 0.1+0.2 在 IEEE 754 下等于 0.30000000000000004)。稳妥做法是先用 Number.toFixed() 或乘除法归一化,例如 Math.floor((0.1 + 0.2) * 10) / 10 先得到 0.3 再处理。

注意边界与兼容性

这两个方法都接受字符串形式的数字(会隐式转换),但遇到无法转为有效数字时返回 NaN。下面是一些边界情况:

  • Math.ceil("3.7") → 4(虽然能工作,但不建议依赖隐式转换)
  • Math.floor("hello") → NaN
  • Math.ceil(null) → 0(因为 Number(null) 等于 0)

建议在调用之前先校验输入:typeof x === 'number' && !isNaN(x),这样能避免很多隐性 bug。

本文转载于:https://www.php.cn/faq/2420559.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注