Andre Michelle: alert ( 100.1 - 100 )

Hi,

kennt jemand dieses Phaenomen ?

<script>
 alert (100.1-100);   // != 0.1
</script>

gruss
aM

  1. Moin!

    kennt jemand dieses Phaenomen ?

    <script>
    alert (100.1-100);   // != 0.1
    </script>

    Rundungsfehler treten auf, das ist bekannt. Der Grund liegt darin, daß "0.1" sich als binäre Zahl nicht so einfach darstellen läßt, sondern einen endlosen Bruch ergibt - genauso wie 1/3 eben nicht 0,333 ist, sondern 0,333333333333333333333333333333333333333333... (endlos).

    Mit anderen Worten: Rundungsfehler treten immer auf, aber dadurch, daß der Computer im Binärsystem rechnen muß, wir aber das Dezimalsystem gewohnt sind, treten sie eben an unerwarteten Stellen auf.

    - Sven Rautenberg

  2. use Mosche;

    kennt jemand dieses Phaenomen ?

    <script>
    alert (100.1-100);   // != 0.1
    </script>

    Das liegt daran, dass der Computer alle Floatzahlen annähern muss, dass heisst, er rechnet nicht mit genauen Ergebnissen, sondern mit Näherungswerten. Deswegen kann soetwas passieren.

    use Tschoe qw(Matti);

    1. Hoi,

      Das liegt daran, dass der Computer alle Floatzahlen annähern muss,

      Nicht alle, sondern nur die, die er sonst nicht richtig darstellen
      kann :-) 0.5 z. B. braucht nicht angenaehert zu werden.

      Gruesse,
       CK

  3. Hi,

    kennt jemand dieses Phaenomen ?

    <script>
    alert (100.1-100);   // != 0.1
    </script>

    Rechenungenauigkeit aufgrund der internen binaeren Speicherung. Der juengste Thread dazu ist hier schon weg, aber noch nicht im Archiv.

    Verwende eine geeignete Rundung:
    alert(parseInt((100.1-100)*10+0.5)/10);  // --> 0.1

    MfG, Thomas

  4. Hoi,

    kennt jemand dieses Phaenomen ?

    Ja.

    <script>
    alert (100.1-100);   // != 0.1
    </script>

    Die Begruendung findest du im Archiv ;-)

    z. B.:

    http://forum.de.selfhtml.org/archiv/2001/6/26179/
    http://forum.de.selfhtml.org/archiv/2001/6/25898/

    Gruesse,
     CK

  5. Vielen Dank !

    Das Problem gibt es auch in Action Script ( Flash ).
    Und laut Archiv eben auch in anderen Programmiersprachen.
    Macht mich sprachlos...

    ;)

    aM