math.floor向下取整、math.ceil向上取整,均非四舍五入;前者取不大于原数的最大整数(如math.floor(-2.1)→-3),后者取不小于原数的最小整数(如math.ceil(-2.9)→-2),常用于分页、栅格布局等场景。

Math.floor 向下取整,Math.ceil 向上取整,两者都不四舍五入,也不受小数位数影响,只看数值本身在数轴上的位置。
Math.floor:取不大于原数的最大整数
无论正负,它都朝负无穷方向“砍掉”小数部分。比如 Math.floor(3.9) 得 3,Math.floor(-2.1) 得 -3(不是 -2,因为 -3 比 -2.1 更小)。
- 正数:去掉小数,只留整数部分(如
Math.floor(7.01)→ 7) - 负数:往更小的整数走(如
Math.floor(-0.5)→ -1) - 整数:返回自身(如
Math.floor(4)→ 4)
Math.ceil:取不小于原数的最小整数
与 floor 相反,它朝正无穷方向“进一”。Math.ceil(3.1) 得 4,Math.ceil(-2.9) 得 -2(因为 -2 是大于 -2.9 的最小整数)。
- 正数:有小数就进 1(如
Math.ceil(5.0001)→ 6) - 负数:去掉小数后往零靠近(如
Math.ceil(-4.9)→ -4) - 整数:返回自身(如
Math.ceil(-8)→ -8)
常见用途对比
它们常用于控制数值范围或对齐计算,比如分页、栅格布局、数组索引转换:
- 分页总数:
Math.ceil(total / perPage)算出总页数(哪怕剩 1 条也要多一页) - 网格列数:
Math.floor(width / columnWidth)算满格能放几列 - 避免小数索引:
Math.floor(Math.random() * arr.length)安全取随机数组下标
注意点:别和四舍五入混淆
Math.round 才是四舍五入;floor 和 ceil 是“方向性取整”,不看小数大小,只看方向。例如:
-
Math.floor(2.49)和Math.floor(2.99)都是 2 -
Math.ceil(-1.01)和Math.ceil(-1.99)都是 -1 - 想保留一位小数再取整?先乘除缩放:
Math.floor(3.456 * 10) / 10→ 3.4
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











