Also meiner Bescheidenen Meinung nach darf bei 100*2.55 immer nur 255 rauskommen, und zwar egal ob ich double oder float oder was auch immer benutze. Alles andere ist mathematisch einfach falsch und kann auch nicht durch Speicherbegrenzung schoen geredet werden. Das es bei "komplizierten" Rechnungen (also 1.2324324243*2.29832389 oder sqrt(2) z.B.) zu Rundungsfehlern oder aehnlichem kommt, das seh ich ein und damit kann ich auch leben, aber 100*2.55? Kommt schon, die Menschheit will Leute zum Mars schicken und dann soll ich mich damit zufrieden geben?!?

Naja, keiner von uns hat das ja verbockt, also muss ich wohl damit leben. Ich hoffe nur die zukuenftigen Mars-Menschen kommen auch an und landen aufgrund eines solchen Fehlers nicht auf der Venus...

Jens

Laurence Tonke wrote:
On Wed, 2003-10-22 at 16:25, Tobias C. Rittweiler wrote:

On Wednesday, October 22, 2003 at 2:42:22 PM, J.K. Becker <[EMAIL PROTECTED]> wrote:


[...] Warum z.B. ist auf meinem Rechner 100*2.55 nicht 255 sondern
254.99999999irgendwas? [...]
[F]ür so ein Murks kann es doch einfach keine vernünftige Rechtfertigung
geben [...]

Doch, die gibt es: Speicher ist begrenzt! (Und damit die Datentypen, und damit auch die Genauigkeit von Fließkommazahlen.)


Das ist leider so. Ja. Wenn Du genau wissen willst, wie Gleitkommazahlen
implementiert sind:
http://www.pronix.de/C/standard_C/c_programmierung_8.shtml
(Punkt 8.6 und 8.7)

Laurence


----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an