[JavaScript] parseInt() - Bug?

MeLLe

Lt. Junior Grade
Registriert
Okt. 2001
Beiträge
484
parseInt() - Bug?

hi,
ich habe ein kleines script (JS) gebastelt. dabei werden per parseInt() aus strings zahlen extrahiert und basis dieser
dann weiter im programm verzweigt ... nun isses so dass die ganze sache auch *fast* problemlos funktioniert. aber eben
nur fast! bei zwei werten spinnt parseInt() meiner meinung nach gewaltig rum!
wenn ich "01", "02", "03" ... per parseInt() parse :D bekomme ich die zahlen 1,2,3,... geliefert. wie gewünscht. bei "08"
und "09" aber liefert parseInt() jeweils 0 als zahl zurück, obwohl ja eigentlich 8 bzw 9 zurückgegeben werden sollten.
oder?

ist das MEIN fehler oder ein fehler des browsers? ich nutze IE5 (hier @work :D) und da tritt der fehler halt auf. wie
es bei anderen browser-versionen ist weiss ich nicht.

wenn ich folgendes...
Code:
<html><head><title>test</title></head>
<body><script  language="JavaScript">
document.write(parseInt("00")+", "+parseInt("01")+", "+parseInt("02")+", "+parseInt("03")
+", "+parseInt("04")+", "+parseInt("05")+", "+parseInt("06")+", "+parseInt("07")+", "
+parseInt("08")+", "+parseInt("09")+", "+parseInt("10"));
</script></body></html>
in eine html-datei schreibe und diese aufrufe erhalte ich folgendes...
0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 10
ausgegeben. komisch oder?
hat wer eine *einfache* erklärung zu meinem problem? ich meine man könnte die sache mit einem gewissen
mehraufwand auch anders lösen aber warum umständlich ... :D

danke schonmal im voraus ;)
 
Zuletzt bearbeitet:
das problem ist ich habe nicht die möglichkeit die "" wegzulassen, weil im *eigentlichen* einsatz-script stehen auch keine "" sondern etwas in der art:

Code:
.
.
.
if(parseInt(document.all.tags("TD")[j].innerHTML)>1)
.
.
.

d.h. er holt sich den string aus dem inhalt eines <td>-konstrukts. nix mit "" weit und breit. das ist ja das problem :(

trotzdem danke für die schnelle antwort ;)
 
w00t!

ok das problem hat sich erledigt, es liegt net unbedingt am browser sondern an mir :D

ein einfaches
Code:
alert(parseInt("08",10));
gibt ganz locker-flockig eine 8 zurück. javascript geht bei vorangestellter "0" nämlich von oktal-zahlen aus. das kann man halt durch erzwingen des zehner-system mit dem ",10" verhindern.

gut. selfhtml ist doch net so übel :D
 
Zurück
Oben