2013-07-15 92 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> 

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

小区() - 一法取整

地板() - 舍去法取

=)