JavaScript:
levert 0.600000000000011
| alert(0.2+0.4); |
terwijl volgens mij de floating points toch exact binair zijn uit te drukken. Natuurlijk geen onbekend probleem en het levert nog wel wat hits op, maar nergens een goede oplossing. toFixed gaat me niet helpen, of in ieder geval niet direct, aangezien ik niet weet hoeveel decimale getallen er moeten zijn (het moet ook werken met 0.02+0.04 bijvoorbeeld)
Wat ik wil is de juiste waarde van de som, of tenminste de dichtst bijzijnde representeerbare waarde. 0.6 is volgens mij prima te representeren
Ik heb ook geen idee waar het probleem eigenlijk ligt, het is niet echt een overflow issue lijkt me, of een niet representeerbaar getal.
kan iemand verheldering verschaffen in de oorzaak hiervan? misschien komen we dan op een oplossing
Edit: eerste denkfout van mij: exponent is niet base 10, maar base 2 natuurlijk. Dus 0.2, 0.4 en 0.6 zijn niet exact representeerbaar. Dus bron van het probleem lijkt me daar te liggen.
[ Voor 10% gewijzigd door Anoniem: 9542 op 08-10-2007 14:30 ]