Seite 3 von 3
Re: Ein Rundungsproblem
Verfasst: Dienstag 30. Januar 2024, 18:39
von nezzcarth
Qubit hat geschrieben: Montag 29. Januar 2024, 23:44
Oder anders gesagt: ich nutze bestimmt nicht Python, um mir gerade über die interne Darstellung von Zahlen Gedanken zu machen.
Vielleicht sehe ich das falsch, aber nach meinem Verständnis ist das keine Besonderheit von Python sondern in der Tat etwas, worüber man sich als Programmierer in den meisten Sprachen Gedanken machen muss, wenn es denn relevant wird. Ein Grundverständnis dafür, dass bei Gleitkommazahlen ein paar Dinge zu beachten sind, gehört vielleicht nicht zu den absoluten Grundlagen, aber – würde ich sagen – schon zum Handwerkszeug der meisten, die etwas Programmiererfahrung haben. Was Python angeht, wird es jedenfalls auch im offiziellen Tutorial, das jeder mal gelesen haben sollte, vermittelt, als letztes Kapitel:
https://docs.python.org/3/tutorial/floatingpoint.html
Re: Ein Rundungsproblem
Verfasst: Dienstag 30. Januar 2024, 18:45
von Dennis89
Hallo,
als ich das erste mal von diesem Problem hörte, habe ich mit die Seite
https://floating-point-gui.de/ gespeichert.
Vielleicht lesen hier, so wie ich damals, auch ein paar mit, die das interessiert. Beinhaltet auch einige weiterführende Links.
Grüße
Dennis
Re: Ein Rundungsproblem
Verfasst: Dienstag 30. Januar 2024, 19:07
von narpfel
Qubit hat geschrieben: Dienstag 30. Januar 2024, 11:24
Aber der (nicht ganz korrekte) Algorithmus der "round"-Funktion liefert hier als Erghebnis
Der Algorithmus ist korrekt, weil du nie die reelle Zahl 2,635 gerundet hast, sondern
immer den `float`-Wert `2.635`, der eben nicht 2,635 ist sondern (exakt) 1483373127265157/2251799813685248 * 2². Und das ist klar kleiner als 2,635, muss also abgerundet werden.
Qubit hat geschrieben: Dienstag 30. Januar 2024, 00:39
1) Natürlich lässt sich jede reelle Zahl beliebig genau (nach Vorgabe) berechnen.
„Natürlich“.
Ja.
Jede.