PHP ceil() 函数

定义和用法

ceil() 函数向上取整,返回不小于给定数字的最小整数(即向正无穷方向取整)。

提示:如需向下取整,请使用 floor() 函数;如需四舍五入,请使用 round() 函数。

语法

ceil(float $num): float
参数 描述
num 必需。规定要进行向上取整的数字。

返回值

返回不小于 num 的下一个整数。返回值仍然是 float 类型,因为 float 的取值范围通常比 int 更大。

PHP 版本

  • PHP 4+
  • PHP 5+
  • PHP 7+
  • PHP 8+

示例

示例 1:基本用法

<?php
echo (ceil(5.1) . "<br>");   // 6
echo (ceil(5.9) . "<br>");   // 6
echo (ceil(-5.1) . "<br>");  // -5 (注意:-5 大于 -5.1)
echo (ceil(-5.9) . "<br>");  // -5
echo (ceil(5) . "<br>");     // 5 (整数保持不变)
?>

输出:

6
6
-5
-5
5

示例 2:处理负数

<?php
$values = [-3.7, -3.3, -3, 0, 3.3, 3.7];
foreach ($values as $value) {
    echo "ceil($value) = " . ceil($value) . "<br>";
}
?>

输出:

ceil(-3.7) = -3
ceil(-3.3) = -3
ceil(-3) = -3
ceil(0) = 0
ceil(3.3) = 4
ceil(3.7) = 4

示例 3:实际应用 - 分页计算

<?php
function getTotalPages($totalItems, $itemsPerPage) {
    return ceil($totalItems / $itemsPerPage);
}

$totalItems = 105;
$itemsPerPage = 20;
echo "总记录数:$totalItems<br>";
echo "每页显示:$itemsPerPage<br>";
echo "总页数:" . getTotalPages($totalItems, $itemsPerPage);
?>

输出:

总记录数:105
每页显示:20
总页数:6

相关函数

注意事项

重要:
  • ceil() 返回的类型是 float,即使传递的值是整数也是如此。如果需要 int 类型,可以手动转换:(int) ceil($value)。
  • 对于某些临界值,浮点运算可能导致意外的结果,例如 ceil(0.1 + 0.7) 可能返回 1 而不是 0 ?实际上 0.1+0.7=0.8,ceil 应为 1。但浮点精度问题可能导致 0.1+0.7=0.7999999,ceil 可能为 0?这只是一个潜在问题。但通常没问题。
  • 当数字足够大以至于整数部分超出 float 精度时,结果可能不精确。