Fehler bei Addition

con-f-use

Erfahrenes Mitglied
Hallo zusammen,
bin grad mal wieder auf was Seltsames gestoßen:
1.458 + 1.175 ist laut JavaScript 2.632999999999996 und nicht 2.633, wie jeder normale Mensch denken würde.
Ich kann mich erinnern, dass ich mal was davon gelesen habe und dass es an der Art liegt, wie JS den Speicher verwaltet, aber weiß leider nicht mehr wo. Kann jemand da mal mein Gedächtnis auffrischen, mir also sagen woran das liegt und vielleicht auch noch sagen, wie man den Fehler am besten behebt - also per JS zum richtigen Ergebnis kommt. Welche Eigentschaften haben die Zahlenpaare, bei denen dieser Fehler auftritt?

Danke schonmal im Voraus.
 
Wenn du nicht unendlich viele Nachkommastellen hast, wäre eine Möglichkeit, die Zahlen sooft mit 10 zu multiplizieren, bis du ganze Zahlen (Integer) hast, bei denen kommen solche Rechenfehler afaik nicht vor.
 
Ich weiß zwar nicht, welche Operation du durchgeführt hast, jedoch ergibt Folgendes eindeutig 2.633:
HTML:
<script type="text/javascript">
	alert(1.458 + 1.175);
</script>
 
Interessant hatte gerade das Script aufgerufen, dass mir das falsche ausgegeben hat (Wert war wieder falsch). Dann habe ich dein alert von oben eingebaut einfach weil ich schauen wollte, ob's das auch falsch ausgibt und danach hat's beides richtig ausgegeben. Jetzt habe ich den alert wieder rausgenommen (der Code ist jetzt Zeichen für Zeichen wieder der gleiche wie vorher) und jetzt gibt's den immernoch richtig aus. Interessant.
Das ganze war in einem Form-Feld untergebracht - vielleicht liegt es dran die Werte werden ja vom Browser gepeichert...
 
Zuletzt bearbeitet:
Zurück