In Magento 1.7 there is a well known rounding error issue, which I thought I have solved using the fix suggested for example here
However, ever since I have applied the fix, there is now a very strange new calculation error, not for taxes, but already for the items in cart. It only happens when the amount of an item in the cart is more than one.
Example: 5 times an item with a price of 1.18 € each equals 5.88 € in cart and not 5.90 € as supposed.
Once I disable the rounding error fix again, price calculation for the articles works again, bit than tax is being calculated wrong.
Any idea how to fox this?
Best Answer
Info
Round price in Magento based on previous rounding operation delta.
Sometimes this can cause an error due to the high delta calculation error (
$this->_calculator->round($price)
). For example, for this reason, some prices can vary in the range of ±1 cent.Solution
To avoid this, you need to improve the accuracy of the delta calculation.
Change
to
Changes need to be made in both files:
Don't modify or hack core files! Do a rewrite!
The solution was tested on different versions of Magento 1.9.x, but maybe this will work in earlier versions.
P.S.
Change
roundPrice
function, as shown below, can solve the rounding error problem, but it can cause others (for example, some platforms require rounding up to 2 decimal places).