Вам необходимо округлить скидку для каждой позиции: priceDiscount = round_to_hundredth(subtotal * itemDiscountPercent)
Обратите внимание, что этот результат может не совпадать с результатом, который вы получите, если вы добавите необоснованные результаты, а затем округлите сумму.Однако именно так обычно работают счета при расчете вручную (тем более что каждый товар может иметь различный процент скидки, поэтому скидка рассчитывается для каждой строки).
Я думаю, что вы пропустили строку с надписью discountAmount += priceDiscount
.