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 函式
floatround ( float val [, int precision])
返回將 val 根據指定精度 precision(十進位制小數點後數字的數目)進行四捨五入的結果。
precision 也可以是負數或零(預設值)。
<?phpecho
round(3.4); //
3echo
round(3.5); //
4echo
round(3.6); //
4echo
round(3.6, 0); //
4echo
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)補至指定的小數字數
echosprintf("%01.2f", 5.228); //
5.23
echo
sprintf("%01.2f", 5.224); //
5.22
echo
sprintf("%01.2f", 5); //
5.00
number_format 函式
如果是不帶小數字數的,會自動用0補至指定的小數字數
echonumber_format(5.228,2); //
5.23
echo
number_format(5.224,2); //
5.22
echo
number_format(5,2); //
5.00
round 函式
此函式可以實現四捨五入,但是如果是不帶小數字數的,處理後也不帶小數數字
echoround(5.228,2); //
5.23
echo
round(5.224,2); //
5.22
echo
round(5,2); //
5
php進一法取整
echoceil(4.4); //
5echo
ceil(4.6); //
5
php捨去法取整
echofloor(4.4); //
4echo
floor(4.6); //
4
php保留兩位小叔 php保留兩位小數的方法
如下所示 num 10.4567 第一種 利用round 對浮點數進行四捨五入 echo round num,2 第二種 利用sprintf格式化字串 format num sprintf 2f num echo format num 第三種 利用千位分組來格式化數字的函式number format...
php數字兩位小數 PHP保留兩位小數的幾種方法
如下所示 num 10.4567 第一種 利用round 對浮點數進行四捨五入 echo round num,2 第二種 利用sprintf格式化字串 format num sprintf 2f num echo format num 第三種 利用千位分組來格式化數字的函式number format...
保留兩位小數
1.只要求保留n位不四捨5入 float f 0.55555f int i int f 100 f float i 1.0 100 2.保留n位,四捨五入 decimal d decimal.round decimal.parse 0.55555 2 3.保留n位四捨五入 math.round 0....