Addieren mit JS ergibt falsches ergebnis?!
steve_M
- javascript
also mein Problem simpel aber gemein.
eine Addition von 21.30 + 37.30 ergibt bei mir als Ergebnis 58.599999999994 und nicht die Erwateten 58.60 habe es schon mit parseFloat probiert aber das ergibt auch nciht das richtig Ergebnis.
Würde mich über schnelle Hilfe freuen.
Danke
also mein Problem simpel aber gemein.
nein ist es nicht. http://www.dcljs.de/faq/antwort.php?Antwort=rechnen_rechnen
Struppi.
Hi,
eine Addition von 21.30 + 37.30 ergibt bei mir als Ergebnis 58.599999999994 und nicht die Erwateten 58.60 habe es schon mit parseFloat probiert aber das ergibt auch nciht das richtig Ergebnis.
Willkommen in der Welt der numerischen Mathematik.
Computer rechnen binär. Nicht jede Zahl, die im Dezimalsystem eine endliche Nachkommastellenzahl hat, hat auch im Binärsystem eine endliche Nachkommastellenzahl.
Dazu kommt dann noch, daß der Speicherplatz für eine Zahl im Computer notwendigerweise endlich ist ==> es können nicht alle Nachkommastellen gespeichert werden ==> Rundungsfehler.
cu,
Andreas
Hallo,
das Problem liegt weniger bei JavaScript als vielmehr an unserer falschen Anzahl an Fingern:
http://dcljs.de/faq/antwort.php?Antwort=rechnen_rechnen
Viele Grüße
Carsten
Hallo,
Wenn es sich um physikalische Messwerte handelt, sollte man sowieso alle Ergebnisse so genau runden, wie man messen kann.
Aber auch bei rein mathematischen Berchnungen darf man so etwas runden,
mehr als 3 oder 4 Nachkommastellen sind ja selten interessant.
Gruß
Alexander Brock
viel einfacher:
((21.30 * 100) + (37.30 * 100)) / 100)
vielleicht kann es ja nochmal wer brauchen.
Hi Steve.
Noch einfacher ist es, wenn du intern immer die 100fachen Werte nimmst und nur zur Ausgabe dividierst, vorausgesetzt du rechnest die ganze Zeit mit 2 Nachkommastellen.
MfG _Siro.