From c91469ba39d475faa3c90682dce74d592f25f6bd Mon Sep 17 00:00:00 2001 From: Jeff Godin Date: Tue, 12 Jun 2012 13:40:46 -0400 Subject: [PATCH] Improve float avoidance in outstanding bills Simplify and improve floating point issue avoidance in outstanding_bills_for_circ: fewer parentheses, better results. Signed-off-by: Jeff Godin --- Open-ILS/src/perlmods/lib/OpenILS/Application/AppUtils.pm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/AppUtils.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/AppUtils.pm index 70f961663e..88d786aecd 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/AppUtils.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/AppUtils.pm @@ -1827,16 +1827,16 @@ sub outstanding_bills_for_circ { # adjusting the amount for partially paid bills map { my $payment = $_; - my $paybal = $payment->amount; + my $paybal = $payment->amount * 100; while ($paybal > 0) { # get next billing my $bill = shift @{$bills}; - my $newbal = (($paybal*100) - ($bill->amount*100))/100; + my $newbal = $paybal - $bill->amount*100; if ($newbal < 0) { $newbal = 0; - my $new_bill_amount = (($bill->amount*100) - ($paybal*100))/100; - $bill->amount($new_bill_amount); + my $new_bill_amount = $bill->amount*100 - $paybal; + $bill->amount($new_bill_amount/100); unshift(@{$bills}, $bill); # put the partially-paid bill back on top of the stack } -- 2.11.0