I have confirmed the original bug. It's easy to recreate. Create a single grocery bill for $8.29 then attempt a credit card payment. The total amount to pay in the UI will display as $8.28.
The Perl int() docs warn against this kind of thing... I have also confirmed the AppUtils::fpsum() function, which was recently added to address these kinds of rounding issues (and does not use int()), produces the correct results.
Returning to the original bug...
I have confirmed the original bug. It's easy to recreate. Create a single grocery bill for $8.29 then attempt a credit card payment. The total amount to pay in the UI will display as $8.28.
This can also be easily reproduced with:
perl -e 'print "no match\n" unless ((8.29 * 100) == int(8.29 * 100))';
The Perl int() docs warn against this kind of thing... I have also confirmed the AppUtils::fpsum() function, which was recently added to address these kinds of rounding issues (and does not use int()), produces the correct results.
Patch en route.