alert ( 100.1 - 100 )
Andre Michelle
- javascript
Hi,
kennt jemand dieses Phaenomen ?
<script>
alert (100.1-100); // != 0.1
</script>
gruss
aM
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
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);
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
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
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
Vielen Dank !
Das Problem gibt es auch in Action Script ( Flash ).
Und laut Archiv eben auch in anderen Programmiersprachen.
Macht mich sprachlos...
;)
aM