php保留兩位小數


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

 


免責聲明!

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



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