希望能够解释一下以下代码,该代码用于计算两个不同数字之间的百分比变化,其中原始数字可能是较大或较小的数字。所以这段代码是否适用于显示增加+或减少-的变化?谢谢。
$original= 100;
$current = 95;
$percentChange = (1 - $original / $current ) * 100;
这个函数更有用,因为它可以防止除以零,并且输出结果可以四舍五入,同时它还能处理正(增加)和负(减少)的返回值。
if (! function_exists('pct_change')) {
/**
* Generate percentage change between two numbers.
*
* @param int|float $old
* @param int|float $new
* @param int $precision
* @return float
*/
function pct_change($old, $new, int $precision = 2): float
{
if ($old == 0) {
$old++;
$new++;
}
$change = (($new - $old) / $old) * 100;
return round($change, $precision);
}
}
<?php
$original= 100;
$current = 115;
$diff = $current - $original;
$more_less = $diff > 0 ? "More" : "Less";
$diff = abs($diff);
$percentChange = ($diff/$original)*100;
echo "$percentChange% $more_less agaist $original";
?>
110
和90
与100
相比差异将是相同的。
是的,它可以显示增加+或减少-的变化。