(PHP 4, PHP 5, PHP 7, PHP 8)
ceil — Round fractions up
Description
Returns the next highest integer value by rounding up
num if necessary.
Parameters
num-
The value to round
Return Values
num rounded up to the next highest
integer.
The return value of ceil() is still of type
float as the value range of float is
usually bigger than that of int.
Changelog
| Version | Description |
|---|---|
| 8.0.0 |
num no longer accepts internal objects which support
numeric conversion.
|
Examples
Example #1 ceil() example
<?php
echo ceil(4.3), PHP_EOL; // 5
echo ceil(9.999), PHP_EOL; // 10
echo ceil(-3.14), PHP_EOL; // -3
?>85
Scott Weaver / scottmweaver * gmail ¶
17 years ago
I needed this and couldn't find it so I thought someone else wouldn't have to look through a bunch of Google results-
<?php
// duplicates m$ excel's ceiling function
if( !function_exists('ceiling') )
{
function ceiling($number, $significance = 1)
{
return ( is_numeric($number) && is_numeric($significance) ) ? (ceil($number/$significance)*$significance) : false;
}
}
echo ceiling(0, 1000); // 0
echo ceiling(1, 1); // 1000
echo ceiling(1001, 1000); // 2000
echo ceiling(1.27, 0.05); // 1.30
?>49
8 years ago
Caution!
<?php
$value = 77.4;
echo ceil($value * 100) / 100; // 77.41 - WRONG!
echo ceil(round($value * 100)) / 100; // 77.4 - OK!23
15 years ago
Actual behaviour:
echo ceil(-0.1); //result "-0" but i expect "0"
Workaround:
echo ceil(-0.1)+0; //result "0"23
steve_phpnet // nanovox \\ com ¶
21 years ago
I couldn't find any functions to do what ceiling does while still leaving I specified number of decimal places, so I wrote a couple functions myself. round_up is like ceil but allows you to specify a number of decimal places. round_out does the same, but rounds away from zero.
<?php
// round_up:
// rounds up a float to a specified number of decimal places
// (basically acts like ceil() but allows for decimal places)
function round_up ($value, $places=0) {
if ($places < 0) { $places = 0; }
$mult = pow(10, $places);
return ceil($value * $mult) / $mult;
}
// round_out:
// rounds a float away from zero to a specified number of decimal places
function round_out ($value, $places=0) {
if ($places < 0) { $places = 0; }
$mult = pow(10, $places);
return ($value >= 0 ? ceil($value * $mult):floor($value * $mult)) / $mult;
}
echo round_up (56.77001, 2); // displays 56.78
echo round_up (-0.453001, 4); // displays -0.453
echo round_out (56.77001, 2); // displays 56.78
echo round_out (-0.453001, 4); // displays -0.4531
?>