Ernesto: parseInt

Hallo,

Wieso übersetzt parseInt("008") mit: 0 ?
Wieso übersetzt parseInt("009") mit: 0 ?
Wieso übersetzt parseInt("010") mit: 8 ?
... immer 2 weniger als korrekt!
Wieso übersetzt parseInt("018") mit: 1 ?
Wieso übersetzt parseInt("019") mit: 1 ?
Wieso übersetzt parseInt("020") mit: 16 ?
... immer 4 weniger als korrekt!
Wieso übersetzt parseInt("028") mit: 2 ?
Wieso übersetzt parseInt("029") mit: 2 ?
Wieso übersetzt parseInt("030") mit: 24 ?
... immer 6 weniger als korrekt!

Wie kann man einfach die führenden Nullen entfernen?

Viele Grüße
 Ernesto

  1. Hallo Ernesto,

    Wieso übersetzt parseInt("008") mit: 0 ?
    Wieso übersetzt parseInt("009") mit: 0 ?
    Wieso übersetzt parseInt("010") mit: 8 ?

    Die führende Null führt zur oktalen Interpretation (erlaubt sind die Ziffern 0 bis 7). Insofern gibt es 8 und 9 nicht. 10 ist oktal 8 = 0*8^0 + 1*8^1.

    Gib die gewünschte Basis (10) explizit an, also parseInt("010",10) --> 10.

    Grüße,
    Thomas

  2. Hallo,

    Wieso übersetzt parseInt("008") mit: 0 ?
    Wieso übersetzt parseInt("009") mit: 0 ?
    Wieso übersetzt parseInt("010") mit: 8 ?
    ... immer 2 weniger als korrekt!

    Wie kann man einfach die führenden Nullen entfernen?

    Viele Grüße
    Ernesto

    Problem gelöst:
    Führende Nullen lassen den String als String einer Oktalzahl
    erscheinen. Abhilfe auch klar! Entschuldigung: Ich habe die ent-
    sprechende Stelle in SELFHTML erst später gelesen.

    Ernesto