Hallo,
FAQ: Wieso habe ich beim Rechnen mit Dezimalzahlen Rechenfehler?
Sehr informativ, danke.
wird immer wieder gern empfohlen. ;-)
Also "Nicht exakt darstellbare Zahlen im Binärsystem". Das bedeutet dann wohl, in der Schleife ist der wahre (im System unsichtbare) Wert im Hintergrund beim Breakpoint ein anderer, als bei einer gleichen (im sichtbaren Bereich) Einzelrechnung.
Nein. Es bedeutet vielmehr, dass Fließkommazahlen intern immer um mindestens ein Bit genauer gespeichert als sie tatsächlich angezeigt werden. So werden Zahlen zur Darstellung also immer gerundet (und sei es auf 12 Nachkommastellen oder so).
Bei mehreren Additionen in Folge summiert sich aber auch der Fehler auf (Abweichung von gespeichertem zu gerundeten Anzeigewert), und nach ein paar aufeinanderfolgenden Schritten wird er so groß, dass die Rundung ihn nicht mehr ausbügelt.
Wenn beim Gartenbau mal ein Pflasterstein ein paar Millimeter zu klein ist, macht das noch nicht viel; wenn du aber fünf Pflastersteine aneinanderlegst, die alle einen Hauch zu klein sind, passt es irgendwann mit dem Anschluss nicht mehr.
Dann vermute ich mal, es ist sinnvoller lange Operationen besser als Ganzwert abzuarbeiten und erst am Ende wieder in einen gebrochenen Wert ändern?
Ja, das ist eine oft empfohlene Methode und funktioniert gut, wenn du die Wertebereiche vorher überblicken kannst.
Schönes Wochenende,
Martin
Ach, macht ihr da Ohm doch Watt ihr Volt.