I found this peace of code in Magento’s core:
* Calculate item row total price
* @return Mage_Sales_Model_Quote_Item
public function calcRowTotal()
$qty = $this->getTotalQty();
// Round unit price before multiplying to prevent losing 1 cent on subtotal
$total = $this->getStore()->roundPrice($this->getCalculationPriceOriginal()) * $qty;
$baseTotal = $this->getBaseCalculationPriceOriginal() * $qty;
The total value is rounded before it gets multiplied with the quantity, but the basetotal does not, and afterwards they both are rounded anyway.
As a result, both values might become different although the basecurrency and used currency are the same.
Is there are logical reason for this, or is it an inconsistency ( bug ) ?