math.ceil()向上取整,返回≥原数的最小整数,如math.ceil(-2.9)→-2;math.floor()向下取整,返回≤原数的最大整数,如math.floor(-1.2)→-2。

Math.ceil() 用于向上取整,即返回大于或等于给定数字的最小整数;Math.floor() 用于向下取整,即返回小于或等于给定数字的最大整数。两者都只对数字本身操作,不改变原值,返回新数值。
向上取整:Math.ceil()
无论小数部分多小,只要存在,就进一位到下一个整数。负数也遵循“向上”(向数轴右侧)原则,即更接近零的方向。
- Math.ceil(3.1) → 4
- Math.ceil(7) → 7
- Math.ceil(-2.9) → -2(因为 -2 > -2.9,是满足“≥ -2.9”的最小整数)
- Math.ceil(-5) → -5
向下取整:Math.floor()
直接舍去小数部分,向负无穷方向取整。对负数而言,结果比原数更小(即更远离零)。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
- Math.floor(4.9) → 4
- Math.floor(0.1) → 0
- Math.floor(-1.2) → -2(因为 -2
- Math.floor(-8) → -8
常见使用场景与技巧
这两个方法常用于分页计算、栅格布局、数组分块等需要整数边界控制的场合。
-
分页总页数 = Math.ceil(总条数 / 每页条数),例如 25 条数据、每页 10 条 →
Math.ceil(25/10)→ 3 页 - 获取第 n 个元素所在页码(从 1 开始)= Math.floor((n - 1) / 每页条数) + 1
-
避免浮点误差干扰:先用 Number.toFixed() 或乘除法归一化,再取整,例如
Math.floor(0.1 + 0.2) → 0(错误),应写为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)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










