2013-07-15 94 views
1

我目前將兩個值分開以便從實際計數和總計數中獲得我的應用程序的百分比。整數百分比PHP

我用下面的公式:

echo ($fakecount/$totalcount) * 100; 

這是給我像一個值:79.2312313。我會認爲79%的價值。

我曾嘗試以下:

echo round($fakecount/$totalcount) * 100; 

這似乎並沒有正常工作。

有什麼建議嗎?

+1

添加'* 100'內輪:'回聲圓($ fakecount/$ totalcount * 100);' –

回答

4

嘗試

echo (int)(($fakecount/$totalcount) * 100+.5); 

以獲得最佳性能。發言值之前我加入0.5沒有四捨五入前增加0.5,你會得到19 19.8,但加入0.5是20.3和取整後,將提供20 :)

+1

投射到'int'與'floor()'相同。使用'round()'來獲得最接近的值。 – rjmunro

+0

@rjmunro我的一個會返回相同的值作爲round(),因爲我在類型轉換之前加了0.5):) – Fallen

+0

對不起,沒有發現那個。你確定鑄造到int的性能比使用round()足夠的餘量要比額外的添加快嗎? – rjmunro

1
echo intval(($fakecount/$totalcount) * 100); 

或者你可以使用

echo floor(($fakecount/$totalcount) * 100); //Round down 

或者

echo ceil(($fakecount/$totalcount) * 100); // Round Up 
+0

'intval()'和'floor )'。使用'round()' – rjmunro

7

您需要通過100你之前倍增一輪,而不是:

echo round($fakecount * 100/$totalcount); 

您正在計算$fakecount/$totalcount,這將是一個介於0和1之間的數字,然後您將該數字取整,所以您得到0或1,然後乘以100,得出0或100的百分比。

0

沒有...

有很多方法可以做到這一點。

$mypercent = ($fakecount/$totalcount) * 100; 

記住..這將首先運行的是內部(XXX),並會後* 100

在此之後...

echo round($mypercent); 

而且你可以使用大量的如果你想要的話,也要遵守這個規則

<i>if ($value < 10) { 
    $value = floor($value); 
} else { 
    $value = round($value); 
}</i> 

不要忘記看到其他命令也可能你會需要它。

小區() - 一法取整

地板() - 捨去法取

=)