Danke erstmal für die Antworten - auch mit viel Programmieraufwand bekomme ich den Rundungsfehler nicht weg.
Ich behelfe mir jetzt mittels
cac:AllowanceCharge und berechne aus den beiden Werten die Differenz und setze diese dann auf den jeweiligen Posten an:
Code:
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>ABK</cbc:AllowanceChargeReasonCode>
<cbc:Amount currencyID="EUR">0.04</cbc:Amount>
</cac:AllowanceCharge>
Somit wird das
xml auch valide, sieht zwar nicht schön aus aber ich habe keine andere Lösung gefunden

Die Rechnungssummen stimmen ja komplett überein, somit ist das die für mich derzeit praktikabelste Lösung.