写分页逻辑算总页数、把金额截成整数元,都会用到 floor函数。行为一句话说完:往数轴负方向取整,返回小于等于参数的最大整数。

基本行为

floor(3.7) 等于 3,floor(5) 还是 5,floor(-2.3) 等于 -3。最容易错的是负数:很多人以为结果是 -2,那是四舍五入的直觉。floor 是向负无穷取整,-2.3 往下就是 -3。

各语言里的写法

Python 里用 math.floor(3.7),Python 3 返回整数类型;C 和 C++ 在 math.h 里声明 floor,返回 double;JavaScript 的 Math.floor(3.7) 返回整数;Java 是 Math.floor(x),返回 double,要整数得强转。Excel 里用 INT 或 FLOOR.MATH 做向下取整,负数的取整方向各函数有差异,用前拿几个负数试一下最稳。

和 CEILING、ROUND 的区别

CEILING 往上取整,FLOOR 往下取整,方向相反;ROUND 是四舍五入。分页算总页数必须向上取整:101 条数据每页 20 条是 6 页,用 floor 算成 5 页就丢数据了。反过来,秒数换分钟、金额截断展示这类宁可少不能多的场景,用 floor 就对了。

举两个顺手就能用的例子:seconds 换成整数分钟写 floor(seconds / 60);页面倒计时把剩余毫秒换算成整秒,同样用 floor 截掉小数。

记忆口径就一句:分页、切块这类宁可多算一组的用向上取整,金额、坐标这类宁可截断的用 floor。跨语言写代码时留意返回类型,Java 和 C 返回浮点,别拿它直接当数组下标用。