axel: Fließkommafehler

Beitrag lesen

Guten Morgen geschätzte Leser!

Javascript macht ja bekanntlich Fließkommafehler (0.011*100=1.0999999999999998). (Das warum ist mir eigentlich egal, obwohl ich nicht verstehe, daß das nötig ist - mein uraltes Turbo-Pascal konnte das besser.)
Die häufig angebotene Lösung heißt runden. Da ich aber den Benutzern auch mehrere Nachkommastellen anbieten will, kann ich also erst nach der (z.B.) 9ten Stelle runden (Math.round(X*1e9)/1e9). Nun kommt mein Problem: Da der Benutzer auch größere Zahlen (Größenordnung "nur" 1e7) eingeben wird, führt das dazu, daß durch 1e7*1e9 die Zahlengenauigkeit am Ende ist und mir der Fließkommafehler erhalten bleibt (Beispiel: Math.round(0.011*100*1e7*1e9)/1e9=10999999.999999998).
Noch zum Verständnis: Es geht um die Umrechung physikalischer Größen in verschiedene Einheiten. D.h., der Benutzer gibt Werte ein, das Javascript soll umrechnen. Ich gebe also nur feste Umrechnungsfaktoren vor und habe auf die Auswahl der Zahlen somit keinen Einfluß.
Es würde mich sehr freuen, wenn jemand einen Vorschlag für mich hat, wie ich auf korrekte Werte komme.
Eine schöne Woche wünscht Euch allen
axel