1.不進位的情況
例如3.149569取小數點後兩位,最後兩位不能四捨五入。結果:3.14。
可以使用 floor 函數
該函數是捨去取整。例如,floor(4.66456) 結果:4 。
floor(9.1254) 結果9 。
因此,去小數點後兩位,需要先乘以100,然後捨去取整,再除以100,即:
$a=floor(3.149569*100)/100
這時浮點計算會出現一個bug,透過PHP的無型別特性來解決這個問題,先strval轉成字串,再自動辨識類型。下面計算百分比已經使用上strval()函數了
計算百分比
$successRate = floor(strval((2/3)*10000))/10000*100; $result = $successRate.'%';
2.四捨五入的情況
# 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
sprintf 函數
實作四捨五入,如果是不帶小數位數的,會自動用指定的字元(指定的0)補到指定的小數位數
echo sprintf("%01.2f", 5.228); // 5.23 echo sprintf("%01.2f", 5.224); // 5.22 echo sprintf("%01.2f", 5); // 5.00
number_format 函數
#如果是不帶小數位數的,會自動用0補到指定的小數位數
echo number_format(5.228,2); // 5.23 echo number_format(5.224,2); // 5.22 echo number_format(5,2); // 5.00
round 函數
此函數可以實現四捨五入,但是如果是不帶小數位數的,處理後也不帶小數數字
echo round(5.228,2); // 5.23 echo round(5.224,2); // 5.22 echo round(5,2); // 5
# php進一法取整
echo ceil(4.4); // 5 echo ceil(4.6); // 5
php捨去法取整
echo floor(4.4); // 4 echo floor(4.6); // 4
相關教學推薦:《PHP教學》
以上是php保留兩位小數的幾種方法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!