Der fehlende Cent
Sie addieren die Positionen, die Buchhaltung des Kunden addiert die Positionen, und beide Summen unterscheiden sich um einen Cent. Niemand hat sich verrechnet. Zwei Dinge verursachen das — Rundung zu einem anderen Zeitpunkt und die Art, wie Computer Dezimalbrüche speichern — und beide lassen sich vermeiden.
Geld ist keine Dezimalzahl, sondern eine ganze Zahl Cent
Computer speichern 0,1 und 0,2 als binäre Brüche, die sehr nah dran, aber nicht exakt sind; deshalb ergibt 0,1 plus 0,2 in den meisten Programmiersprachen nicht 0,3. In einer Zeile merkt das niemand. Über vierzig Zeilen und eine Steuerberechnung summiert sich der Fehler zu einem sichtbaren Cent. Die App hält keinen Betrag als Dezimalzahl: jeder Preis wird beim Eintragen in **ganze Cent** verwandelt, alle Rechenarbeit läuft auf ganzen Zahlen, und erst für die Anzeige wird zurückgerechnet. Das ist der Unterschied zwischen einer Summe, die stimmt, und einer, die meistens stimmt.
Einmal runden, an einer Stelle
Die zweite Ursache ist subtiler. Nehmen Sie drei Zeilen mit je 3 Stück zu 0,335. Runden Sie zuerst je Zeile, erhalten Sie dreimal 1,01, zusammen 3,03. Addieren Sie zuerst und runden einmal, erhalten Sie 3,02. Rechnerisch ist keines falsch; es sind Antworten auf verschiedene Fragen. Falsch ist, beides im selben Dokument zu tun — Zeilen gerundet anzuzeigen, aber ungerundet zu summieren, was eine Rechnung ergibt, deren sichtbare Positionen die sichtbare Summe nicht ergeben. Die App rundet einmal je Position und addiert die gerundeten Zeilen.
Wo Rabatte einen Cent verstecken
Ein prozentualer Rabatt auf die Summe teilt sich nicht glatt auf die Zeilen. Zehn Prozent auf drei Zeilen zu 3,33 sind 0,999 — ein Drittel Cent je Zeile, was sich nicht drucken lässt. Runden Sie jeden Anteil ab, fehlt ein Cent; runden Sie auf, ist einer zu viel. Die App berechnet den Rabatt auf die Zwischensumme, verteilt ihn auf die Zeilen und legt den Rest auf eine davon, sodass die Summe der rabattierten Zeilen exakt der rabattierten Zwischensumme entspricht. Eine elegante Lösung gibt es nicht — nur die Disziplin, die sichtbaren Zahlen konsistent zu halten.
Währungen ohne Untereinheit
Nicht jede Währung hat zwei Nachkommastellen. Der japanische Yen hat keine: Beträge sind ganze Yen, es gibt keine Untereinheit zum Runden. Ein System mit fest zwei Stellen erzeugt Preise wie ¥1.250,00 — so schreibt man Yen nicht — und rundet schlimmer noch auf ein Hundertstel einer Einheit, die es nicht gibt. Die App speichert die Nachkommastellen **je Währung** und rundet entsprechend.
Häufige Fragen
Warum weicht meine Rechnung um einen Cent von der Tabelle ab?
Meist rundet einer je Position und der andere nur die Summe. Beides ist vertretbar; beides in einem Dokument zu mischen nicht.
Je Position oder auf die Summe runden?
Je Position, dann die gerundeten Zeilen addieren — so ergeben die gedruckten Zeilen sichtbar die gedruckte Summe. Manche Steuerregime haben eine Präferenz.
Ist 0,1 + 0,2 wirklich nicht 0,3?
In binärem Gleitkomma nicht — es ist 0,30000000000000004. Deshalb wird Geld in ganzen Cent geführt.
Warum lässt ein Prozentrabatt einen Rest?
Weil ein Prozentsatz einer Summe selten glatt in ganze Cent auf die Zeilen aufgeht. Der Rest muss auf eine Zeile.
Wie behandelt die App den japanischen Yen?
Als Währung ohne Nachkommastellen: ganze Yen, keine Untereinheit, keine Centrundung.
Kann ich die Summe nicht einfach von Hand korrigieren?
Nein. Eine Summe, die nicht der Summe der Zeilen entspricht, fällt sofort auf. Korrigieren Sie die Rundungsregel.
Rechnungen, bei denen die Summe wirklich stimmt. Invoice Maker erstellt Rechnungen, Proformarechnungen, Angebote und Quittungen im Browser, rechnet in ganzen Cent, damit die Steuerzeile nicht abweicht, und exportiert ein PDF. Nichts wird hochgeladen.
Rechnung im Browser erstellen