Tablora

Tablora · Bibliothek

0.10 und 0.20 mit exakter Dezimalrechnung prüfen

Prüfen Sie mit Dezimalarithmetik, dass 0.10 plus 0.20 genau 0.30 ergibt, damit eine angegebene Summe ohne Anzeigefehler der Gleitkommazahlen verglichen wird.

Warum 0.1 plus 0.2 falsch aussehen kann

Viele Programme speichern Zahlen als binäre Gleitkommazahlen, in denen sich 0.1 und 0.2 nicht exakt darstellen lassen. Addiert man sie, liegt das gespeicherte Ergebnis einen Hauch über 0.3; je nach Formatierung sehen Sie 0.30000000000000004 oder einen Vergleich, der die Werte für ungleich erklärt. Bei einem Abgleich wirkt ein solches Artefakt wie eine Abweichung, die es gar nicht gibt.

Die Dezimalsummenprüfung vermeidet das. Sie liest jeden Wert als Dezimalzeichenkette, bringt alle Werte auf dieselbe Zahl von Nachkommastellen und addiert sie als ganze Zahlen, sodass 0.10 und 0.20 genau 0.30 ergeben.

Die Zeilen eingeben

Ergebnis für 0.10 und 0.20

Mit den Werten 0.10 und 0.20 und einer Erwarteten Summe von 0.30 beträgt die Berechnete Summe 0.30, die Differenz 0.00, und Summen stimmen überein zeigt Ja. Das Ergebnis behält zwei Nachkommastellen, weil das die größte Zahl von Stellen unter den Eingaben und der erwarteten Summe ist.

Die Differenz ist immer Berechnete Summe minus Erwartete Summe, eine negative Differenz bedeutet also, dass die eingegebenen Zeilen unter der angegebenen Zahl bleiben.

Werte aus einer echten Tabelle vorbereiten

Aus einem Auszug kopierte Beträge kommen selten in kanonischer Form an. Schicken Sie die Spalte zuerst durch den Normalisierer, mit den Dezimal- und Gruppentrennzeichen, die das Dokument verwendet, und kopieren Sie dann die umgewandelten Werte in die Prüfung. Ein Wert, den der Normalisierer zur Prüfung zurückgehalten hat, ist für die Summe noch nicht bereit; klären Sie ihn, bevor Sie der Summe trauen.

Die Prüfung rechnet exakt mit dem, was Sie eingeben, und mit nichts sonst. Sie rechnet keine Währungen um, wendet keine Steuer- oder Rundungsregeln an und sagt Ihnen nicht, ob jeder Datensatz eingegeben wurde.

Eingaben, die die Prüfung ablehnt

Eingaben

Ein Wert pro Zeile
0.10 0.20
Erwartete Summe
0.30

Ergebnisse

Berechnete Summe
0.30
Differenz
0.00
Summen stimmen überein
Ja