ceil

(PHP 3, PHP 4, PHP 5)

ceil -- 进一法取整

说明

float ceil ( float value )

返回不小于 value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。

例子 1. ceil() 例子

<?php
echo ceil(4.3);    // 5
echo ceil(9.999);  // 10
?>

参见 floor()round()


add a note add a note User Contributed Notes
rjones at i-ps dot net
05-Mar-2006 08:19
To eliftymes below:

To check if a numer is divisible by another number just check if the modulus is zero:

if ($bigger_number % $lower_number == 0)
{
   echo "Can be wholey divided<br />";
}
else
{
   echo "Not wholey divisible";
}
tom pittlik
28-Feb-2006 08:02
ceil() is a useful way to quickly format bogus shopping cart quantities:

<?

ceil
("str"); // 0
ceil("001"); // 1
ceil("0.1"); // 1
ceil("a34"); // 0
ceil("2fg"); // 2
ceil("$%%"); // 0

?>
eliftymes at gmail dot com
24-Feb-2006 04:20
Here's a little function I wrote that checks if a number is divisible by another number.

function check_divisible($number, $divider) {
 if(ceil($number/$divider) == $number/$divider) {
   return TRUE;
 } else {
   return FALSE;
 }
}

Useage would be as so.

$bigger_number=10;
$smaller_number=2;
if(check_divisible($bigger_number, $smaller_number)) {
 echo "$bigger_number is divisible by $smaller_number!";
} else {
 echo "$bigger_number is NOT divisible by $smaller_number!";
}

It's possible uses would be for:

Every 3rd, fourth, fifth, or whatever row in a table could be treated uniquely

Simple games...

Teaching your little kid math.
ermolaeva_elena at mail dot ru
20-Dec-2005 11:27
To round a number up to the nearest power of 10,
I've used
= ceil(intval($val)/10)*10;
nobody
23-Nov-2005 01:00
Here's a more simple one to do ceil to nearest 10:

function ceilpow10(val) {
   if (val % 10 == 0) return val;
   return val + (10 - (val % 10));
}
schmad at miller dash group dot net
19-Apr-2005 12:38
To round a number up to the nearest power of 10 use this simple procedure:

$multiplier = .1;
while($number>1)
{
   $number /= 10;
   $multiplier *= 10;
}
$number = ceil($number) * $multiplier;
coxswain at navaldomination dot com
17-Mar-2005 06:06
steve_phpnet // nanovox \\ com wouldn't:

<?php
$ceil 
= ceil(4.67 * 10) / 10;
?>

work just as well?
steve_phpnet // nanovox \\ com
01-Mar-2005 04:40
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
?>
sven at plus dot hr
10-Feb-2005 07:59
function roundaway($num) {
switch($num) {
case ($num > 0):
$n = ceil($num);
break;
case ($num < 0):
$n = floor($num);
break;
case ($num == 0):
$n = 0;
break;
}
return $n;
}
aaron at mind-design dot co dot uk
22-Jul-2004 04:10
Or for the terniary fans:

<?php

function roundaway($num) {
   return((
$num > 0) ? ceil($num) : floor($num));
}

?>

Slightly pointless, but there you have it, in one line only..
rainfalling at yahoo dot com
22-Apr-2004 08:51
IceKarma said: "If you want, say, 2.6 to round to 3, and -2.6 to round to -3, you want round(), which rounds away from zero."

That's not always true. round() doesn't work that way, like zomis2k said it just rounds up _or_ down to the nearest non-decimal number. However this should work.

<?php

function roundaway($num) {
   if (
$num > 0)
     return
ceil($num);
   elseif (
$num < 0)
     return
floor($num);
   elseif (
$num == 0)
     return
0;
}

?>
roger_dupere at hotmail dot com
10-Nov-2003 06:02
Here is a navbar using the ceil function.

<?php
 
function navbar($num_rows,$page,$link) {
  
$nbrlink = 10; /* Number of link to display per page */
  
$page = (int) $page; /* Page now displayed */
  
$num_rows = (int) $num_rows;

   if(
$num_rows > 0 ) {
    
$total_page = ceil( $num_rows / $nbrlink );

     for(
$i=1;$i<$total_page+1;$i++ ) {
       if(
$i == $page ) {
        
$ret .= " <b>$i</b> ";
       } else {
         if(
strstr( $link,"?" ) ) {
          
$ret .= " <a href=\"$link&page=$i\">$i</a> ";
         } else {
          
$ret .= " <a href=\"$link?page=$i\">$i</a> ";
         }
       }
     }

     return
$ret;
   }
 }
 
/* Let say that $num_rows content the numbre of rows of your sql query */
 
$navbar = navbar( $num_rows, $page, "listmovie.php?id=$id" );

  if(
$navbar != null || $navbar != "" ) {
   print(
"<p><div align=\"center\">$navbar</div></p>" );
  }
?>
zomis2k at hotmail dot com
23-May-2003 02:24
>If you want, say, 2.6 to round to 3, and -2.6 to round to -3, you want round(), which rounds away from zero.

round() does not always round away from zero
round(2.4) = 2
round(2.6) = 3
round(-2.4) = -2
round(-2.6) = -3

round() rounds number to nearest non-decimal number.
IceKarma
22-Apr-2003 08:31
ceil() rounds towards positive infinity ("up"), floor() rounds towards negative infinity ("down").

If you want, say, 2.6 to round to 3, and -2.6 to round to -3, you want round(), which rounds away from zero.
clx at deim dot net
12-Jun-2002 04:55
<?php
echo ceil(2.6); // will output "3"
echo ceil(-2.6); // will output "-2"
?>