Hallo Welt,
neulich musste ich in einer Webanwendung mehrere Datumswerte in Javascript mittels parseInt von einer führenden 0 säubern. Nichts leichter als das, oder?
Selbstverständlich habe ich nicht daran gedacht, dass parseInt standardmäßig mit dem Oktalsystem rechnet und so staunte ich nicht schlecht, als mir bei parseInt("08") eine 0 zurückgegeben wurde.
Warum war dem so?
Dem Oktalsystem liegen 8 Ziffern zu Grunde: 0, 1, 2, 3, 4, 5, 6 und 7. Das bedeutet, dass es den Wert 8 nicht kennt. Denn nach der 7 kommt 10.
Wer es genauer wissen möchte, kann das bei Wikipedia nachlesen.
Das heißt, wenn man also 8 von “08″ zurück bekommen möchte, dann muss man der Funktion parseInt mitteilen, dass sie das Dezimal bzw. Hexadezimalsystem als Grundlagen verwenden soll.
Dies kann man mit den zweiten optionalen Parameter radix machen; parseInt(string,radix)
radix kann folgender Wert sein:
2 = Binär
8 = Oktal (Default)
10 = Dezimal
16 = Hexadezimal
var pZahl = parseInt(”08″,2);
pZahl = 0;
var pZahl = parseInt(”08″,8);
pZahl = 0;
var pZahl = parseInt(”08″,10);
pZahl = 8;
var pZahl = parseInt(”08″,16);
pZahl = 8;
Interessant, nicht war? :D
So, schönen Tag dann noch.
bis neulich,
michele