Thread Runden *war Subtrahieren in Perl ... (55 answers)
Opened by Muffi at 2013-09-25 10:41

Muffi
 2013-09-25 08:47
#170581 #170581
User since
2012-07-18
1465 Artikel
BenutzerIn
[default_avatar]
Mir fehlt noch das warum. Dann könnt ich jetzt eher sagen ob ich irgendwo häng oder ob meine Vermutung stimmt, dass du Fließkommazahlen nicht ganz verstanden hast.

Nehmen wir an meine Vermutung stimmt und wir fangen einfach an.
Code (perl): (dl )
say nearest(0.01, 0.005); # 0.005 auf 2 Nachkommastellen runden

0.01
Logisch.

Wir erweitern den Code unerheblich auf
Code (perl): (dl )
say nearest(0.01, 2.024-2.019); # 2.024-2.019 = 0.005

Wir erwarten also logischerweise das gleiche Ergebnis.
Und:
0.01
Tadaaaa, wir haben recht.

Zur Sicherheit lassen wir und das Ergebnis der Differenz ausgeben
Code (perl): (dl )
say 2.024-2.019;

Und Bumms
0.00499999999999989
Das sollte gerundet eigentlich 0.00 ergeben.

Kann es sein, das jetzt grad dein Weltbild von Fließkommazahlen einen kleinen Knacks bekommen hat?
1 + 1 = 10

View full thread Runden *war Subtrahieren in Perl ...