简体   繁体   中英

Php Calculate percentage difference between two numbers

I am trying to find the difference of two numbers in percentage. The actual scenario is iam getting a total value of user data for this week and for last week. Now i need to see the performance difference in percentage with this weeks data and last weeks data. Following is my code which i am trying. But at times either any of the data will be zero and am getting an error "Division by zero". How to handle that?

$this_week_cust=$row["cust_count_new"];
$last_week_cust=$row["cust_count_old"];

$percentChange = (1 - $last_week_cust / $this_week_cust) * 100;

You can check if $this_week_cust is zero and just set the change to 100%

$this_week_cust=$row["cust_count_new"];
$last_week_cust=$row["cust_count_old"];
if ( $this_week_cust == 0 ) {
   $percentChange = -100;
}
else {
   $percentChange = (1 - $last_week_cust / $this_week_cust) * 100;
}

Altough the change would be 0 if $last_week_cust was also 0, so perhaps

if ( $this_week_cust == 0 ) {
   $percentChange = ($last_week_cust==0)?0:-100;
}

try this

if $this_week_cust!=0 that time only calculation will perform otherwise not do anything

$this_week_cust=$row["cust_count_new"];
$last_week_cust=$row["cust_count_old"];
if($this_week_cust!=0){
   $percentChange = (1 - $last_week_cust / $this_week_cust) * 100;
}

您可以通过检查$this_week_cust来获得所需的结果,如果它返回零、null 或空集 $this_week_cust 为 100;

$percentChange=100;

I think this will help you.

$original= 1000;
$current = 5;
$diff = $current - $original;
$more_less = $diff > 0 ? "More" : "Less";
$diff = abs($diff);
$percentChange = ($diff/$original)*100;
echo "$percentChange% $more_less agaist $original";

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM