1. 程式人生 > >php四捨五入函式(floor、ceil、round與intval)

php四捨五入函式(floor、ceil、round與intval)

本文講述了在php 中處理浮點數時經常要需要用的四捨五入函式。在php 中有兩個函式適用於這種情況:floor函式、ceil函式和round函式

floor函式和ceil函式互相搭配起來可以使php 處理的資料更加真實可靠。

floor:捨去取整

ceil:取整,和floor功能相反

round:根據引數選擇精度(這是真正的四捨五入)

intval:獲取變數的整數值,如果引數是字串,則反回0

一、先來看floor函式:

語法:

float floor ( float value )

說明:

返回不大於 value 的下一個整數,將 value 的小數部分捨去取整。floor() 返回的型別仍然是 float,因為 float 值的範圍通常比 integer 要大。

floor() 例子 1

<?php 
 echo floor(1.6); // will output "1" 
 echo floor(-1.6); // will output "-2" 
?>

floor() 例子 2

<?php
echo(floor(0.60));
echo(floor(0.40));
echo(floor(5));
echo(floor(5.1));
echo(floor(-5.1));
echo(floor(-5.9))
?>

輸出:
0
0
5
5
-6
-6

二、ceil函式:

語法:

float ceil ( float value )

說明:

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

ceil() 例子:

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

看到這兩個函式的區別了麼。。

在分頁時我們會常用到的
//頁碼計算:

  $lastpg=ceil($totle/$displaypg); //最後頁,也是總頁數,用ceil就方便多了。
  $lastpg=$lastpg ? $lastpg : 1; //沒有顯示條目,置最後頁為1 
  $page=min($lastpg,$page); 
  $prepg=$page-1; //上一頁 
  $nextpg=($page==$lastpg ? 0 : $page+1); //下一頁 
  $firstcount=($page-1)*$displaypg; 

當然,如果需要制定精度就需要使用round函數了。

三、round函式:

語法:

float round ( float val [, int precision] )

說明:

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

round() 例子

<?php 
echo round(3.4);     // 3 
echo round(3.5);     // 4 
echo round(3.6);     // 4 
echo round(3.6, 0);   // 4 
echo round(1.95583, 2); // 1.96 
echo round(1241757, -3); // 1242000 
echo round(5.045, 2);  // 5.05 
echo round(5.055, 2);  // 5.06 
?>

四、intval—對變數轉成整數型態

變數轉成整數型別。

語法: int intval(mixed var, int [base]);

返回值: 整數

函式種類: PHP 系統功能
 
內容說明


本函式可將變數轉成整數型別。可省略的引數 base 是轉換的基底,預設值為 10。轉換的變數 var 可以為陣列或類之外的任何型別變數。

例子intval()

<?php 
echo intval(4.3); //4 
echo intval(4.6); // 4 
?> 

注:intval如果是字元型的會自動轉換為0 如

intval('abc');

輸出結果 0

如果是

intval('5fd');

輸出結果是

5

注:intval不能處理大於9位的數字