RE: Math Weirdness

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 

 

> I am totally buffaloed by a set of very simple calculations that I am 

> doing;

> 

> /* calculate total balance with payments and adjustments */

>     $totalBalance = $acct['BALANCE'] + $adjBalance;

>     echo number_format($totalBalance, 2, '.', '')."\t";

> 

>     /* calculate total charges */

>     $totalCharges = $intlLDCharges + $longDistance + $smsCharges + 

> $daCharges + $totalData + $roaming;

>     echo number_format($totalCharges, 2, '.', '')."\t";

> 

>     /*

>      * calculate difference between total balance and total charges

>      * if the amount matches the ending balance then all is OK

>      * if not calculate the difference

>      */

>     $totBalDiff = $totalBalance - $totalCharges;

>     if($totBalDiff === $endingBal){

>           echo "OK\t";

>     } else {

>           /* what is the difference between the ending balance and the 

> charges? */

>           $totChargeDiff = $endingBal - $totalCharges;

>           echo number_format($totChargeDiff, 2, '.', '')."\t";

>     }

> 

> Each number represented by a variable in all of these calculations has 

> been rounded to 2 decimal points at the point they are generated. For 

> the most part this works just hunky-dory but I have a handful of calcs 

> (out of 300k plus records) that look like this....

> 

> $endingBal            0.10

> $totalBalance   0.30

> $totalCharges   0.20

> $totalChargeDiff      -0.10

> 

> The balance minus the charges does equal the ending balance as it 

> should but it is saying that it doesn't and that there a 20 cent swing 

> (-0.10 is 20 cents different than 0.10).

> 

> I must be missing something. When I echo out raw data I do not see 

> negative signs. Does anyone have any insight as to what might be 

> happening here?

 

I don't quite understand your problem, but I use integers for any monetary
workings as you can guarantee it is accurate (obviously, you work in pence
or cents rather than GBP or USD).

 

Alex



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux