Avatar billede massman Nybegynder
06. marts 2004 - 16:06 Der er 5 kommentarer og
2 løsninger

fejl i decimaler?

Et simpelt script som dette giver falske decimaler af en eller anden grund:

for (var i=1; i<999; i++) {
document.write( i/3 + "<br>");
}

http://adm-websrv3a.sdu.dk/mthom03/ehwtf.gif
Ret underligt at fx 1/3 og 4/3 ikke giver samme decimaler?
Avatar billede olebole Juniormester
06. marts 2004 - 16:33 #1
<ole>

Det er ikke JavaScript - generelt - der fejler noget.
Det er heller ikke dit script, der fejler noget.
Det er dit browser-valg, der fejler noget ... en ordentlig browser laver naturligvis ikke den slags elementære fejl  :)

/mvh
</bole>
Avatar billede massman Nybegynder
06. marts 2004 - 16:43 #2
Jeg blev bekymret om det var min cpu (amd ath 1800+) der fejlede, da noget lignende skete i en modifikation til quake3, hvor funktionen tilsvarende ++ gav afvigelser på 5 decimal. Og da det så skete i JavaScript var jeg sikker på den var gal. Så tak fordi du siger det "bare" er browseren :>

Ellers ret flot af microsoft ikke at have rettet en så elementær fejl... Explorer er jo ikke ligefrem et nyt program :>
Avatar billede olebole Juniormester
06. marts 2004 - 17:14 #3
De gør det formodentlig for at leve op til deres ry. Glem ikke, at Win2K blev sendt på markedet med over 6.000 kendte fejl!  ;o)
/mvh
Avatar billede nmh Nybegynder
06. marts 2004 - 19:52 #4
Man kan undre sig over at der er denne decimalfejl, og her må man som olebole skriver blamere Microsoft.

Men man skal vænne sig til at der er fejl i de sidste decimaler i store regneudtryk, og det er der ikke noget at gøre ved.

Regneudtrykket (x+1/y)*y-x*y
med x=1234 og y=13 bliver
0,999999999999999 i Visual Basic, hvis x og y erklæres til at være af typen double (så regnes der med særlig mange decimaler), men det bliver 1, hvis x og y erklæres til at være af typen single.

I de fleste programmeringssprog (og lommeregnere) vil
(123*10^20+1)-123*10^20
udregnes til 0 og ikke 1, som er det rigtige. Så det kan gå gruelig galt, hvis man ikke passer på.
Avatar billede massman Nybegynder
07. marts 2004 - 18:30 #5
Lav et svar hvis I vil have point ;>
Avatar billede nmh Nybegynder
07. marts 2004 - 19:10 #6
Her er et. :o)
Avatar billede olebole Juniormester
07. marts 2004 - 20:50 #7
... nok et  :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester