php 中處理浮點數時經常要需要四舍五入。在php 中有兩個函數適用于這種情況:floor函數、ceil函數和round函數
floor函數和ceil函數互相搭配起來可以使php 處理的數據更加真實可靠。
一、先來看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
新聞熱點
疑難解答