PHP四舍五入、取整与round函数使用示例

雨后青山
雨后青山
发布时间:2026-10-14 | 4人浏览过
原创

在PHP开发中,数值格式化是常见需求。本文整理了使用sprintf进行保留小数位、ceil/floor进行整数取整以及round函数实现精确四舍五入的具体代码示例与原理说明。

保留小数位的两种策略

第1步:使用sprintf进行标准四舍五入

sprintf 是PHP中最常用的字符串格式化函数,支持通过格式控制符自动对小数进行四舍五入。%.2f 表示保留两位小数(浮点数),第三位小数会自动四舍五入。

$n = 0.1265489;
echo sprintf("%.2f", $n); // 输出: 0.13

第2步:使用substr截断实现不四舍五入

若只需保留两位小数且不进行四舍五入(即直接截断),可以先格式化保留更多位数,再使用 substr 截取。例如,先保留三位,再截取前两位,即可避免第三位引发的进位。

$n = 0.1265489;
echo substr(sprintf("%.3f", $n), 0, -1); // 输出: 0.12

整数取整:ceil与floor函数

第3步:向上取整 ceil

ceil() 函数返回不小于给定数值的最小整数。只要有小数部分,就会向前进一位。

echo ceil(4.1);   // 输出: 5
echo ceil(9.999); // 输出: 10

第4步:向下取整 floor

floor() 函数返回不大于给定数值的最大整数。无论小数部分多接近下一个整数,都会舍去小数部分。

echo floor(4.1);   // 输出: 4
echo floor(9.999); // 输出: 9

round函数的高级应用

第5步:基础四舍五入与精度控制

round() 函数用于将数字四舍五入到指定的小数位数。其基本语法为 float round ( float $val [, int $precision = 0 ] )。

  • 正精度:指定小数点后保留的位数,后一位进行四舍五入。
  • 零精度:默认值,四舍五入到最接近的整数。
<?php
echo round(3.4);      // 输出: 3
echo round(3.5);      // 输出: 4
echo round(3.6);      // 输出: 4
echo round(1.95583, 2); // 输出: 1.96
?>

第6步:负数精度处理

当 $precision 为负数时,舍入操作从个位数开始向左进行。例如,round(1241757, -3) 会将最后三位数变为0,并根据第四位(千位)的值决定百位以上的进位,最终结果为 1242000。

第7步:特殊舍入模式

PHP 7.2+ 支持第三个参数 $mode 来自定义舍入行为,默认值为 PHP_ROUND_HALF_UP(四舍六入五留双之外的传统四舍五入)。以下示例展示了不同场景下的表现:

<?php
echo round(5.045, 2); // 输出: 5.05 (传统四舍五入)
echo round(5.055, 2); // 输出: 5.06
echo round(1241757, -3);// 输出: 1242000
?>
以上就是PHP四舍五入、取整及round函数使用的详细内容,更多关于PHP数值处理的技巧请关注本站其它相关文章!
相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表