Andi: Fehler beim Rechnen mit JavaScript

Ich habe ein kleines Problem beim Rechnen mit JavaScript. Dabei ist die Rechnung eine ganz einfache Sache. Einfach nur 3 mal 0,2 also 0,6.

var ergebnis = (3 * 0.2);alert(ergebnis);
Man sollte eigentlich erwarten, dass auch der Browser nun 0,6 als Ergebnis liefert, ich erhalte allerdings 0.6000000000000001.

var ergebnis = (6 * 0.2);alert(ergebnis);
Ergebnis ist hier 1.2000000000000002.

Ein Workaround habe ich dafür bereits gefunden.
var ergebnis = (6 * 0.2);alert(ergebnis.toFixed(1));

Meine Frage ist nun, woran das liegt. Am Browser schein es nicht zu liegen, denn ich habe es mit Firefox, Opera und IE ausprobiert und erhalte überall das selbe merkwürdige Ergebnis.

Meine Vermutung ist eventuell das es am Prozessor liegen könnte. Ich arbeite mit einem AMD 64 Bit Prozessor unter WinXP 32Bit. Vielleicht kennt ja jemand das Problem und kann meine Frage beantworten.

Danke.

  1. Glück auf Andi,

    ich habe keinen Plan von JavaScript, aber ich glaube in der hiesigen FAQ wird auf das von dir geschilderte Problem eingegangen: http://forum.de.selfhtml.org/hilfe/faq.htm#fliesskommarechnung

    Freundliche Grüße

    Zwerg Alex

    1. Vielen Dank Zwerg Alex

      Ich hatte zwar die Suche benutzt, doch darauf war ich nicht gestossen. Wahrscheinlich nicht das Richtige gesucht. Ich werde mir diese Artikel dann mal durchlesen. Scheint als würde es ein Problem mit dem Binärsystem sein. Kein Wunder, bei den ganzen Nullen und Einsen würd ich auch durcheinander kommen.

      Nochmal Danke
      Andi

      1. Hallo,

        Ich hatte zwar die Suche benutzt, doch darauf war ich nicht gestossen. Wahrscheinlich nicht das Richtige gesucht. Ich werde mir diese Artikel dann mal durchlesen. Scheint als würde es ein Problem mit dem Binärsystem sein. Kein Wunder, bei den ganzen Nullen und Einsen würd ich auch durcheinander kommen.

        Es gibt kein Problem mit der Binärdarstellung. Ein Computer kann nun mal nicht unendlich viele Zahlen speichern. Das ist das ganze "Problem".

        Markus

        --