1.1 + 0.1 = ?
mac
- javascript
Hi, Javascript kann irgenwie 1.1 + 0.1 nicht ausrechnen. 1.2 + 0.1 geht super und 1.3 + 0.1 geht super aber bei 1.1 + 0.1 kommt immer dieses Ergebnis:
1.2000000000000002
Häää ?
Tach,
Hi, Javascript kann irgenwie 1.1 + 0.1 nicht ausrechnen. 1.2 + 0.1 geht super und 1.3 + 0.1 geht super aber bei 1.1 + 0.1 kommt immer dieses Ergebnis:
1.2000000000000002
Häää ?
willkommen im Binärsystem: http://www.dcljs.de/faq/antwort.php?Antwort=rechnen_rechnen.
mfg
Woodfighter
Moin Moin!
willkommen im Binärsystem: http://www.dcljs.de/faq/antwort.php?Antwort=rechnen_rechnen.
Bleibt anzumerken, dass nicht nur Javascript dieses "Problem" hat, sondern jede Sprache, die ihre Berechnungen im Binärsystem erledigen läßt (statt z.B. String-basiert im Dezimalsystem zu rechnen).
Alexander
Moin.
Bleibt anzumerken, dass nicht nur Javascript dieses "Problem" hat, sondern jede Sprache, die ihre Berechnungen im Binärsystem erledigen läßt (statt z.B. String-basiert im Dezimalsystem zu rechnen).
Das hat a priori nichts damit zu tun, in welchem Zahlensystem die Berechnungen durchgeführt werden, sondern damit, dass die Datentypen zur Darstellung von Zahlen eine endliche Breite besitzen: Mit einem solchen lässt sich natürlich nur eine endliche Teilmenge der reellen Zahlen darstellen.
Wann und welche Rundungsfehler allerdings auftreten, ist hingegen natürlich von der konkreten Implementierung von Fließkommazahlen abhängig. Wird String-basiert im Dezimalsystem gerechnet, entstehen die Fehler halt an anderer Stelle.
Christoph
Hallo Alexander,
Bleibt anzumerken, dass nicht nur Javascript dieses "Problem" hat, sondern jede Sprache
Manche Programmiersprachen (wie auch Taschenrechner usw.) rechnen intern mit einer höheren Genauigkeit, als sie (bei einer "Stringumwandlung") darstellen. Das Problem bleibt, aber es wird dadurch in den meisten Fällen verdeckt.
Jonathan