
本文介绍在 php 中将整数向下舍入到百位(即保留前两位有效数字、后两位归零)的简洁方法,核心是结合除法、floor() 和乘法三步操作,适用于任何整型数值。
在 PHP 中,floor() 函数仅对浮点数生效,但可通过数学变换将其灵活应用于整数的“位级向下舍入”。例如,将 12250 向下舍入到百位(即舍去十位和个位,结果为 12200),本质是截断低两位数字,而非四舍五入。这并非标准的“小数点后第 N 位”舍入,而是“以 100 为单位的向下取整”。
实现原理非常直观:
- 缩放:将原数除以 100,使目标位(百位)变为个位;
- 向下取整:使用 floor() 截断小数部分;
- 还原:再乘以 100,恢复数量级。
$number = 12250; $result = floor($number / 100) * 100; // 输出:12200 // 更多示例 var_dump(floor(9999 / 100) * 100); // 9900 var_dump(floor(10049 / 100) * 100); // 10000 var_dump(floor(50 / 100) * 100); // 0 (因 50/100 = 0.5 → floor → 0)
✅ 适用场景:价格展示(如显示“¥12200 起”)、数据聚合(按百位分组统计)、UI 数值简化等。
⚠️ 注意事项:
- 该方法仅适用于非负整数;若需支持负数(如 -12250 → -12300),应改用 intdiv() 或 floor() 配合类型转换,并注意 PHP 的整除行为差异(PHP 8+ 推荐 intdiv($number, 100) * 100,但 intdiv 是向零取整,不等价于 floor,故负数仍建议显式使用 floor($number / 100) * 100);
- 确保输入为数字类型,字符串需先 (int) 或 intval() 转换,避免隐式类型转换错误;
- 性能高效,无循环或正则,适合高频调用。
总结:无需扩展函数或复杂逻辑,三步数学运算即可精准实现百位向下舍入——简洁、可靠、符合 PHP 原生风格。











