Hi,
Ich hatte ein größeres JavaScript geschrieben, doch es arbeitete falsch. Es irritierte mich, weil ich sicher war, dass alles richtig programmiert war.
Du machst das noch nicht so lange, was? ;-)
Das Problem lag dann in einer Schleife, in der ein Wert jedesmal um 0.01 erhöht wird.
Und da ist das Problem: JavaScript kann 0.05 und 0.01 nicht richtig zusammenzählen.
Doch, tut es. Streng nach Vorschrift (IEEE) sogar.
alert(0.05+0.01);
ich erwarte als ausgabe 0.06 was aber nicht ausgegeben wird.
Deine Erwartungshaltung ist, wie bereits von anderer Seite angemerkt, nicht ordnungsgemäß. Die Mathematik lebt nur von der Defintion ihrer selber, also mußt Du _immer_ darauf achten, welche Definition gilt!
Etwas Literatur:
http://www.validlab.com/goldberg/paper.pdf
http://developer.intel.com/technology/itj/q41999/articles/art_6.htm
Der Standard selber kostet leider etwas (etwas viel wie ich meine):
http://standards.ieee.org/catalog/ordering.html
Wie's bei anderen aussieht:
http://www.research.ibm.com/journal/rd/435/schwarz.html
Mathemtik dahinter:
http://www.psc.edu/general/software/packages/ieee/ieee.html
Misc.:
http://webster.cs.ucr.edu/AoA/DOS/ch14/CH14-1.html#HEADING1-52
http://cch.loria.fr/documentation/IEEE754/index.html#wkahan
http://www.research.microsoft.com/~hollasch/cgindex/coding/ieeefloat.html
Hier im Archiv (ja, der ist von mir, aber das liegt an meinem Gedächnis, nicht an anderem ;-):
[http://forum.de.selfhtml.org/archiv/2005/5/t107456/#m667413]
so short
Christoph Zurnieden