n.d. parker: Falsche Ergebnisse bei floats

Beitrag lesen

hallo,

das Problem besteht in wohl allen Sprachen, daß die Fließkommaberechnung rel. ungenau ist.

jein.
das problem besteht eigentlich darin, dass die _umrechnung_ der dezimalzahl in eine dualzahl (im float-bereich wohlgemerkt) ungenau ist. (IEEE 754 - Standard - es haengt ueber den faktor ln(2) zusammen, einfach ausgedrueckt)
0.1 zum beispiel ist als dualzahl eine periodische zahl. daher die fehler.
besonders bemerkbar macht sich das problem bei der subtraktion. man sollte also solche operationen wie beispielsweise 10000.1 - 10000 (da kommt niemals beim dualrechner 0.1 raus...) moeglichst bleiben lassen, da hier auesserst unerwuenschte ergebnisse entstehen.

man koennte natuerlich eine dezimale rechnung simulieren, die waere aber
a) ziemlich aufwendig und
b) ziemlich langsam
wuerde also in den (aller-)meisten faellen nicht das aufwand-nutzen-verhaeltnis verbessern.

uebrigens:
Taschenrechner, die man so handelsueblich zu kaufen bekommt haben dieses problem nicht, da sie gar nicht erst in dualzahlen umrechnen, sondern dezimal rechnen.

cua

n.d.p.