PHP的取整函数

PHP的取整函数有四个,分别是ceil、floor、round和intval,下面对它们进行一一介绍:

1. ceil(x):向上舍入为最接近的整数。

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

   示例:

   echo(ceil(0.60));    输出为1

   echo(ceil(0.40));    输出为1

   echo(ceil(5));       输出为5

   echo(ceil(5.1));     输出为6

   echo(ceil(-5.1));      输出为-5

   echo(ceil(-5.9));      输出为-5

2. floor(x):向下舍入为最接近的整数。

  返回不大于 x 的下一个整数,将 x 的小数部分舍去取整。floor() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。

  示例:

   echo(floor(0.60));    输出为0

   echo(floor(0.40));    输出为0

   echo(floor(5));       输出为5

   echo(floor(5.1));     输出为5

   echo(floor(-5.1));      输出为-6

   echo(floor(-5.9));      输出为-6

3. round(x,prec):对浮点数进行四舍五入。

  返回将 x 根据指定精度 prec (十进制小数点后数字的数目)进行四舍五入的结果。prec也可以是负数或零(默认值)。

  示例:(特别注意红色部分)

  echo(round(0.60));   输出为1

  echo(round(0.50));   输出为1

  echo(round(0.49));   输出为0

  echo(round(-4.40));  输出为-4

  echo(round(-4.60));  输出为-5

  echo(round(52.3456,-2));  输出为100

  echo(round(49.3456,-2));  输出为0

4. int intval ( mixed $var [, int $base = 10 ] ):获取变量的整数值。

  通过使用指定的进制 base 转换(默认是十进制),返回变量 var 的 integer 数值。

  echo(intval (0.60));   输出为0

  echo(intval (0.50));   输出为0

  echo(intval (0.49));   输出为0

  echo(intval (-4.40));  输出为-4

  echo(intval (-4.60));  输出为-4

总结:

  对于一个浮点数,ceil()函数采取进一法取整,只要小数点后的值不为0,都会进一,从而取得比原数大的最小整数,但类型还是float。floor()函数采取舍去法取整,不管小数点后是什么都舍去,从而取得一个比原数小的最大整数,但类型还是float。round()函数采取的则是四舍五入法则,具体数值由保留的小数位和相应位的数字大小决定。intval()函数则是单纯地取得浮点数的整数部分,类型为integer。

注意:

  有些人认为floor()函数和intval()函数功能是相同的,其实不然。首先,得到的数值类型就不同,floor返回的是float类型,intval返回的是integer类型。其次,当浮点数为正数时,这两个函数得到的数值是一样的,但是当浮点数为负数时得到的数值就不同了,例如:floor(-1.99)返回的是-2,而intval(-1.99)返回的却是-1.

  所以,这四个函数虽然都是PHP中的取整函数,但功能却是各不相同的,使用时应该根据自己的实际需要进行选择。

原文地址:https://www.cnblogs.com/wujuntian/p/4778678.html