Rounding issue with Craft Commerce
It is stored in 4 decimal places because some currencies have more than 2 decimal places.

We round before multiplication because we need don't store any value on the line item in a number of decimal places larger than the base currency. This allows us to add up line items without creating new cents.

As you suggest this could be changed to CommerceCurrencyHelper::round($this-&gt;qty * $this-&gt;salePrice); but this would be a breaking change for other users. We will consider it for Commerce 2.

I don't recommend using &gt; 2 decimal places to accomplish your "12 for 6.99" offer, rather make a discount adjuster that reduces the regular price of line item with a discount if qty modulo 12 = 0.