> 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