Avatar billede mailand Nybegynder
09. november 2005 - 17:22 Der er 10 kommentarer

parseInt() bug?

prøv at køre dette

<html>
<head>
    <title></title>
    <script type="text/javascript">
        window.onload = function (){
            alert(parseInt("01") + " " + parseInt("02") + " " + parseInt("03") + " " + parseInt("04") + " " +parseInt("05") + " "+parseInt("06") + " "+parseInt("07") + " "+parseInt("08") + " "+parseInt("09") + " "+parseInt("10"));
        }
    </script>
</head>
<body></body>
</html>




er der nogen, der kan komme med en forklaring på, hvorfor 08 og 09 returnerer 0???


#Mailand
Avatar billede mailand Nybegynder
09. november 2005 - 17:25 #1
hmm... har lige fundet ud af, man bare skal sende ,10 med i sit parseInt() kald...
Avatar billede softspot Forsker
09. november 2005 - 17:26 #2
Opera gør 6.05 ikke :)

Men ellers nej. Det ser noget spøjst ud...
Avatar billede lars_frank Nybegynder
09. november 2005 - 17:29 #3
Jeg skal lige høre. Kører du linux eller AMD?
Fordi du skal køre linux... det er meget hurtigere. Det burde løse problemet.
Avatar billede olebole Juniormester
09. november 2005 - 18:33 #4
<ole>

JavaScript opfatter tal, der begynder med 0, som værende oktaltal.
Prøv at skrive parseInt("TAL", 8) - så vil du se, du får netop de værdier, du beskriver  ;o)

/mvh
</bole>
Avatar billede johan.o Nybegynder
09. november 2005 - 18:44 #5
Taget fra msdn.microsoft.com :
parseInt(numString, [radix])
radix
Optional. A value between 2 and 36 indicating the base of the number contained in numString. If not supplied, strings with a prefix of '0x' are considered hexadecimal and strings with a prefix of '0' are considered octal. All other strings are considered decimal.

Øh, hvad snakkes der om her. hexa, octal, deci ? 2-36 ?

Mvh. Johan
Avatar billede olebole Juniormester
09. november 2005 - 19:44 #6
Det er basen for det aktuelle talsystem.
2 er basen for binære tal
8 for oktaltal
10 for decimaltal, som jo er det almindeligt brugte talsystem
16 for hexadecimal tal

Prøv f.eks: alert( parseInt("FF", 16) ) - der således ikke uventet returnerer 255  ;o)
Avatar billede olebole Juniormester
09. november 2005 - 19:46 #7
- og anden, du måske kender er: alert( parseInt("111", 2) ) - der returnerer 7
Avatar billede johan.o Nybegynder
09. november 2005 - 23:34 #8
Ahmen det er jo bare for lækkert :)

Så forstår man jo pludselig #D8D0C4 farvekoden meget bedre, derudover forklarer det jo også hvorfor jeg fik præsenteret et resultat der hed f.eks. 250 176 97 da jeg for et stykke tid siden fejl testede noget kode og lavede alert på style.background-color :)

Det er absolut god stil at få den slags AHaaaaaa oplevelser :)

Tak for det :)

Mvh. Johan
Avatar billede olebole Juniormester
10. november 2005 - 13:05 #9
Nu ved jeg ikke helt, hvad 'den gamle mand' tænkte på i den uge, hvor han gik og rodede med 'den store kugle' og en masse petriskåle. Det synes, at planen har været, livet skulle være én lang aha-oplevelse ... med lidt pauser til at synke disse. Under alle omstændigheder er den slags altid gode  ;o)

Vær opmærksom på, at IE returnerer farveværdier i hexadecimaltal, mens FF returnerer de samme i decimaltal. IE: #ffff00 ... FF: 255 255 0  :)
Avatar billede johan.o Nybegynder
10. november 2005 - 13:39 #10
Præcis, det var jo det jeg oplevede :)....altså begge dele :)

Mvh. Johan
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