kosh: JS Rechenfehler

Also ich hab folgendes Problem:
Hab ein eigentlich simples script, das mir mehrere werte zusammenrechnen soll... also (wertvonfeld1)*12+(wertvonfeld2)*7 etc...
Funktioniert auch, allerdings ist das Ergebnis manchmal falsch: statt 12 kommt dann 11.99999996 raus.
Kann ich das irgendwie unterbinden, oder kann ich das ergebnis auf 2stellen hinter dem Komma beschränken?

Hab übrigens nicht so viel Ahnung von JS.

Gruß Kosh

  1. Hi Kosh,

    poste doch mal das Script, oder die wichtigen Stellen, dann kann dir sicher jemand helfen. :)

    Viele Grüße
    Ben

    --
    Phantasie ist wichtiger als Wissen. - Albert Einstein
  2. Hi,

    Hab ein eigentlich simples script, das mir mehrere werte zusammenrechnen soll... also (wertvonfeld1)*12+(wertvonfeld2)*7 etc...
    Funktioniert auch, allerdings ist das Ergebnis manchmal falsch: statt 12 kommt dann 11.99999996 raus.

    Willkommen in der Welt der numerischen Mathematik.

    Nicht jede endliche Dezimalzahl kann mit den endlich vielen Bits genau dargestellt werden.
    Daraus ergeben sich dann Rechenungenauigkeiten, wie Du ja festgestellt hast.

    Wenn Du nur ganze Zahlen hast, runde entsprechend.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
  3. Also ich hab folgendes Problem:

    Nein, du hast nur zwei FAQs.

    Hab ein eigentlich simples script, das mir mehrere werte zusammenrechnen soll... also (wertvonfeld1)*12+(wertvonfeld2)*7 etc...
    Funktioniert auch, allerdings ist das Ergebnis manchmal falsch: statt 12 kommt dann 11.99999996 raus.

    http://www.dcljs.de/faq/antwort.php?Antwort=rechnen_rechnen

    Kann ich das irgendwie unterbinden, oder kann ich das ergebnis auf 2stellen hinter dem Komma beschränken?

    http://www.dcljs.de/faq/antwort.php?Antwort=rechnen_runden

    Hab übrigens nicht so viel Ahnung von JS.

    Hat damit nichts zu tun, dass ist bei jeder Programmiersprache so.

    struppi.

    1. Also Danke, mit dem Runden geht es jetzt einwandfrei :-)

      Gruß Kosh