Nicole: Javascript Additions Bug ?

Hallo erst mal ;-),
Hat Javascript eine Additionsproblem oder liegts an
meinem PC ?

Wäre nett wenn mir jemand sagen könnte ob er beim folgenden
Script zum gleichen Ergebniss gelangt.

<h5>testt</h5>
<select name="" size="1" onchange="document.all.summe.value=(2.3*this.value);">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<input type="Text" name="summe" value="" size="">

-------------------------

Bei 1,2,4,5 stimmt alles, also 2.3, 4.6, 9.2, 11.5

Aber bei der Zahl 3 sollte 6.9 rauskommen, stattdessen kommt aber
6.8999999999999995. Klar ich könnte aufrunden aber sauber ist das nicht.

1. Erhaltet Ihr das gleiche Resultat ?
2. Falls Ja, wie kann das sein ?

Gruss
Nikki

  1. Hi,

    <select name="" size="1" onchange="document.all.summe.value=(2.3*this.value);">

    Dir ist bewußt, dass nicht alle Browser diese IE-Syntax kennen?

    Aber bei der Zahl 3 sollte 6.9 rauskommen, stattdessen kommt aber
    6.8999999999999995. Klar ich könnte aufrunden aber sauber ist das nicht.

    Doch, ist es. Ein Computer rechnet halt mit der binären Darstellung von Zahlen und hier kommt es zwangsläufig zu Abweichungen.

    freundliche Grüße
    Ingo

    1. Hi Ingo,

      Dir ist bewußt, dass nicht alle Browser diese IE-Syntax kennen?

      Bei IE und firefox gehts, das reicht mir zu diesem zweck.

      6.8999999999999995. Klar ich könnte aufrunden aber sauber ist das nicht.
      Doch, ist es. Ein Computer rechnet halt mit der binären Darstellung von Zahlen und hier kommt es zwangsläufig zu Abweichungen.

      Ja das mit den Abweichungen ist mir bekannt, aber ich dachte nicht bei so kleinen Zahlenwerten. Bei PHP klappts doch auch.

      Was mich daran besonders wundert ist, dass wenn ichh in die Browserzeile das gleiche eingebe, stimmts....

      javascript:eval(3*2.3)

      Gruss Nikki

      1. Hallo Nicole.

        Was mich daran besonders wundert ist, dass wenn ichh in die Browserzeile das gleiche eingebe, stimmts....

        javascript:eval(3*2.3)

        Nö, ergibt genauso 6.8999999999999995, warum sollten Browser auch einen Unterschied zwischen einer Berechnung und ein und der selben Berechnung machen? (BTW: eval() ist hier überflüssig.)

        Einen schönen Donnerstag noch.

        Gruß, Ashura

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
        [HTML Design Constraints: Logical Markup]
        1. javascript:eval(3*2.3)

          Nö, ergibt genauso 6.8999999999999995, warum sollten Browser auch einen Unterschied zwischen einer Berechnung und ein und der selben Berechnung machen? (BTW: eval() ist hier überflüssig.)

          Was erzählst du da ?
          Ich sehs doch hier vor mir, raus kommt 6.9 auf dem Bildschirm.

          Bitte erst testen dann antworten.

          Gruss Nikki

          1. Hallo Nicole.

            javascript:eval(3*2.3)

            Nö, ergibt genauso 6.8999999999999995, warum sollten Browser auch einen Unterschied zwischen einer Berechnung und ein und der selben Berechnung machen? (BTW: eval() ist hier überflüssig.)

            Was erzählst du da ?

            Was ich sehe.

            Ich sehs doch hier vor mir, raus kommt 6.9 auf dem Bildschirm.

            Dann verwendest du einen defekten Browser.

            Einen schönen Donnerstag noch.

            Gruß, Ashura

            --
            sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
            „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
            [HTML Design Constraints: Logical Markup]
          2. Was erzählst du da ?
            Ich sehs doch hier vor mir, raus kommt 6.9 auf dem Bildschirm.

            Bei mir : 6.8999999999999995

            Struppi.

            --
            Javascript ist toll (Perl auch!)
  2. Hallo,

    [...]

    Hat Javascript eine Additionsproblem oder liegts an
    meinem PC ?

    Es liegt nicht an deinem PC

    [...]

    1. Erhaltet Ihr das gleiche Resultat ?

    Ich erhalte das gleiche Ergebniss.

    Warum? Ich habe auch keine Ahnung. Würde mich auch interessieren.

    Gruß
    Messmar

  3. Hallo Nicole,

    Aber bei der Zahl 3 sollte 6.9 rauskommen, stattdessen kommt aber
    6.8999999999999995.

    1. Erhaltet Ihr das gleiche Resultat ?

    Das verrät dir das Archiv.

    Grüße
     Roland

    1. Hallo Gunnar™,

      6.8999999999999995.

      Mist, Erläuterung nicht verlinkt.

      Grüße
       Roland

      1. Hallo Gunnar™,

        meinst Du mich damit ? Mein Name ist Nicole.

        Mist, Erläuterung nicht verlinkt.

        Danke das war sehr aufschluss-und hilfreich.

        Gruss Nikki

        1. Hallo Nicole,

          Hallo Gunnar™,

          meinst Du mich damit ?

          Nein, ein Gunnar™ ist für uns, was für das Usenet eine Ingrid ist.

          Grüße
           Roland

          1. Hello out there!

            Nein, ein Gunnar™ ist für uns, was für das Usenet eine Ingrid ist.

            <Loriot>Ach. Ach was.</Loriot> ;-)

            See ya up the road,
            Gunnar

            --
            “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
          2. Hallo Roland,

            Hallo Gunnar™,
            Nein, ein Gunnar™ ist für uns, was für das Usenet eine Ingrid ist.

            da habe ich was verpasst. Seit wann?

            Freundliche Grüße

            Vinzenz

            1. Hallo Vinzenz,

              Nein, ein Gunnar™ ist für uns, was für das Usenet eine Ingrid ist.

              da habe ich was verpasst. Seit wann?

              Angemerkt habe ich es am 08.10.2005, begonnen hatten die SelfGespräche schon früher. Schade, dass sich Dreifachpostings nicht über die Suche finden lassen.

              Grüße
               Roland