我有一些存储在数据库中的十进制数,需要使用PHP计算两个数字之间的百分比增加(或减少)。
其中两个数字的例子是:111.0516和111.9052,增幅为0.7628%
我在某个地方找到了以下代码。不幸的是,它似乎不适用于十进制数字并将它们四舍五入:
$num_amount = 111.0516;
$num_total = 111.9052;
function percent($num_amount, $num_total) {
$count1 = $num_amount / $num_total;
$count2 = $count1 * 100;
$count = number_format($count2, 0);
echo $count;
}
percent($num_amount, $num_total);
理想情况下,我需要计算两位小数的百分比,给出0.77%的答案。
PHP可以实现吗?我很难过。我的PHP或数学技能都不足以解决问题。
答案 0 :(得分:22)
让我们做一些数学。
如果你有4欧元我给你2欧元,你有6欧元,增加是2/6。
如果您有x
欧元且我给您delta
欧元,那么您有x + delta = y
欧元
我们可以写
percentage_increase := (delta / y) * 100
:= ((y - x) / y) * 100
:= (1 - (x / y)) * 100
所以你的功能变成了:
function percent($num_amount, $num_total) {
echo number_format((1 - $num_amount / $num_total) * 100, 2); // yields 0.76
}
答案 1 :(得分:8)
只需写下
$count = number_format($count2, 2);
而不是
$count = number_format($count2, 0);
保持代码的其余部分不变。