Der Browser-Speicher localStorage ist nicht verfügbar. Entweder unterstützt dein Browser ihn nicht oder du hast ihn deaktiviert oder er ist voll. Ohne localStorage werden deine Lösungen nicht gespeichert.
parseInt()
Häufig möchte man eine Zahl, die als String vorliegt, in eine Zahl vom Typ Number umwandeln.
Für das Umwandeln von ganzen Zahlen (..., -2, -1, 0, 1, 2, ..) gibt es in JavaScript die Funktion
In allen Beispielen ist der zweite an
Kann
Eine ausführliche Dokumentation von
parseInt
.
Folgende Beispiele geben 19
oder -19
zurück:
let n1 = parseInt('19', 10);
let n2 = parseInt('+19', 10);
let n3 = parseInt('-19', 10);
let n4 = parseInt('19 Grad', 10);
let n5 = parseInt('19.1', 10);
let n6 = parseInt('019', 10);
let n7 = parseInt(' 19', 10);
Neben dem direkten Einlesen von ganzen Zahlen mit oder ohne Vorzeichen (n1, n2, n3) beherrscht parseInt
auch einige komplexe Fälle. Nicht-numerische Zeichen nach der ganzen Zahl (n4, n5) sowie Nullen (n6) und
Leerzeichen (n7) vor der Zahl werden ignoriert.In allen Beispielen ist der zweite an
parseInt
übergebene Parameter 10
.
Dieser Paramter gibt an, zu welcher Basis die Zahl interpretiert werden soll. 10
steht für das
übliche Dezimalsystem. Läßt man den zweiten Paramter weg, wird normalerweise das Dezimalsystem als Default verwendet.
Da es aber von dieser Regel Ausnahmen gibt und diese Ausnahmen in verschiedenen Browsern auch noch unterschiedlich
gehandhabt werden, sollte man immer die Basis mit angeben!
Kann
parseInt
keine Zahl einlesen, gibt sie den Wert NaN
(engl.: Not a Number) zurück:
let n1 = parseInt('Nur Text', 10);
let n2 = parseInt('Nr. 8', 10);
Im ersten Fall ist überhaupt keine Zahl vorhanden. Im zweiten Fall gibt es nicht-numerische Zeichen vor der
eigentlichen Zahl. Auch das ist nicht zulässig und führt zur Rückgabe NaN
.
Eine ausführliche Dokumentation von
parseInt
findest du bei
Mozilla web docs.Aufgabe
Schreibe eine Funktion
Beispiel: Der Aufruf
add
, die einen String mit einer Additionsaufgabe entgegennimmt und die das
Ergebnis der Addition als Zahl zurückgibt. Es sollen zwei natürliche Zahlen addiert werden. Die Additionsaufgabe ist
ein String der Form '102+17'
.
Beispiel: Der Aufruf
add('102+17')
soll die Zahl 119
zurückgeben.
+ Tipp
Bestimme mit
parseInt
den ersten Summanden.
Bestimme mit indexOf
die Position des Plus-Zeichens.
Bestimme mit substr
den Teilstring nach dem Plus-Zeichen.
Bestimme mit parseInt
aus diesem Teilstring den zweiten Summanden.
+ Lösung
function add(s) {
let summand1 = parseInt(s, 10);
let indexPlus = s.indexOf('+');
let sAfterPlus = s.substr(indexPlus + 1);
let summand2 = parseInt(sAfterPlus, 10);
return summand1 + summand2;
}