Math.floor向下取整、Math.ceil向上取整,均不四舍五入;正数时floor舍小数得小值、ceil进一得大值,负数时floor更小(如-3.1→-4)、ceil更大(如-3.9→-3)。

Math.floor 向下取整,即返回小于或等于该数的最大整数;Math.ceil 向上取整,即返回大于或等于该数的最小整数。两者都不四舍五入,也不受小数部分大小影响,只看方向。
Math.floor:永远“舍去小数,往左取”
无论正负,只要不是整数,就朝数轴更小的一侧取整。
- 正数:Math.floor(3.9) → 3,Math.floor(3.1) → 3
- 负数:Math.floor(-3.1) → -4(注意:-4 比 -3.1 更小),Math.floor(-3.9) → -4
- 整数:Math.floor(5) → 5,Math.floor(-7) → -7
Math.ceil:永远“进一取整,往右取”
同样不区分正负,一律朝数轴更大的一侧取整。
- 正数:Math.ceil(3.1) → 4,Math.ceil(3.9) → 4
- 负数:Math.ceil(-3.9) → -3(-3 比 -3.9 更大),Math.ceil(-3.1) → -3
- 整数:Math.ceil(5) → 5,Math.ceil(-7) → -7
常见误区提醒
容易混淆的是负数行为——很多人误以为 Math.floor(-3.1) 是 -3,其实它是 -4;同理 Math.ceil(-3.9) 是 -3,不是 -4。关键记住:floor 是“地板”,数字踩在地板上,不能浮起来;ceil 是“天花板”,数字顶到天花板,不能穿过去。
立即学习“Java免费学习笔记(深入)”;
简单对比速查表
数值 | Math.floor | Math.ceil
3.0 | 3 | 3
3.2 | 3 | 4
-3.2 | -4 | -3
-3.0 | -3 | -3










