php取整函数

来源:互联网 发布:软件交付需求变更 编辑:程序博客网 时间:2024/05/17 09:01

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

1、 ceil(x):向上取整。

返回不小于 x 的下一个整数,x 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,

示例:

   echo(ceil(0.90));    输出为1   echo(ceil(0.10));    输出为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,

示例:

   echo(floor(0.90));    输出为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.90)); 输出为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,1));  输出为52.3  echo(round(52.3456,2));  输出为52.35  echo(round(52.3456,-2));  输出为100  echo(round(49.3456,-2));  输出为0

4、intval (var, base):获取变量的整数值,允许以使用特定的进制返回。默认10进制
注:如果参数为整数,则不做任何处理。

参数:var:必须。可以是任何标量类型。 intval() 不能用于数组 或 对象(类)。在此我得提一下标量类型包含四种:boolean(布尔型)integer(整型) float(浮点型, 也称作 double) string (字符串)
base:可选。转化所使用的进制,默认10进制如果 base 是 0,通过检测 var 参数的格式来决定使用的进制:如果字符串包括了 “0x” (或 “0X”) 的前缀,使用 16 进制如果字符串以 “0” 开始,使用 8 进制其他使用 10 进制

echo intval("0x1a", 0), "\n"; // 使用16进制。 结果 "26" echo intval("057", 0), "\n"; // 使用8进制。 结果 "47" echo intval("57"),"\n"; // 使用10进制。结果57echo intval("42", 0), "\n"; //  结果 "42" 

总结:

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

注意:

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

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

原创粉丝点击