php小數點后取兩位的三種實現方法


php小數點后取兩位的方法。

方法一、經常用到小數點后取幾位,但不能進位的情況。
比如3.149569取小數點后兩位,最后兩位不能四舍五入。結果:3.14。

可以使用函數floor。
該函數是舍去取整。例如,floor(4.66456) 結果:4 。
floor(9.1254) 結果9 。

因此,去小數點后兩位,需要先乘以100,然后舍去取整,再除以100,即:
$a=floor(3.149569*100)/100

計算百分數:
 

復制代碼 代碼示例:
$successRate = floor((2/3'])*10000)/10000*100;
$result = $successRate.'%';
 

輸出結果:
66.67%

方法二、round函數

說明
float round ( float val [, int precision])

返回將 val 根據指定精度 precision(十進制小數點后數字的數目)進行四舍五入的結果。

precision 也可以是負數或零(默認值)。

例子:
 

復制代碼 代碼示例:
<?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.04
echo round(5.055, 2);    // 5.06
?>
 

注意:
在對正好一半的分數進行舍入時 round() 在偶數次舍去,在奇數次進位。

如果想迫使它對 .5(或 .05)總向一個方向舍入,加上或減去一個很小的因子。

對一半值舍去對另一半值進一的背后原因是避免傳統的銀行問題,即如果總是舍去則銀行從顧客那里多拿了錢,如果總是進一則銀行最終會損失了錢。
對此平均舍入則在統計上達到了平衡。
 
三、sprintf函數

最后一種是使用sprintf函數,請參考文章:有關php中sprintf()函數的用法分析中的介紹。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM