天天看點

php取整函數ceil,floor,round,intval函數的差別

開發過程中,遇到資料處理取整的時候,你會用哪個呢,小濤來介紹一下:PHP取整函數有ceil,floor,round,intval,下面詳細介紹一下:

1、ceil — 進一法取整

說明

float ceil ( float $value )

傳回不小于 value 的下一個整數,value 如果有小數部分則進一位。ceil() 傳回的類型仍然是 float,因為 float 值的範圍通常比 integer 要大。

ceil() 例子

  1. <?php
  2. echo ceil(4.3); // 5
  3. echo ceil(9.999); // 10
  4. ?>

2、floor — 舍去法取整

float floor ( float $value )

傳回不大于 value 的下一個整數,将 value 的小數部分舍去取整。floor() 傳回的類型仍然是 float,因為 float 值的範圍通常比 integer 要大。

floor() 例子

  1. echo floor(4.3); // 4
  2. echo floor(9.999); // 9

3、round — 對浮點數進行四舍五入

float round ( float $val [, int $precision ] )

傳回将 val 根據指定精度 precision(十進制小數點後數字的數目)進行四舍五入的結果。precision 也可以是負數或零(預設值)。

round() 例子

  1. echo round(3.4); // 3
  2. echo round(3.5); // 4
  3. echo round(3.6); // 4
  4. echo round(3.6, 0); // 4
  5. echo round(1.95583, 2); // 1.96
  6. echo round(1241757, -3); // 1242000
  7. echo round(5.045, 2); // 5.05
  8. echo round(5.055, 2); // 5.06

Note: PHP 預設不能正确處理類似 “12,300.2″ 的字元串。

Note: precision 參數是在 PHP 4 中被引入的。

4、intval — 擷取變量的整數值

int intval ( mixed $var [, int $base ] )

通過使用特定的進制轉換(預設是十進制),傳回變量 var 的 integer 數值。

var 可以是任何标量類型。intval() 不能用于 array 或 object。

intval() 例子

  1. echo intval(4.3); // 4
  2. echo intval(9.999); // 9

Note:

除非 var 參數是字元串,否則 intval() 的 base 參數不會有效果。

個人認為floor函數與intval函數功能相同,所不同之處是一個傳回的浮點數(float),而另一個是整數(integer),因為 float 值的範圍通常比 integer 要大。不過就數值本身來說兩者是相等的。

下一篇: Linux sed 指令