Читать книгу Angular - Manfred Steyer - Страница 25
number
ОглавлениеDer Datentyp number entspricht dem gleichnamigen Datentyp aus JavaScript. Es handelt sich dabei prinzipiell um eine Fließkommazahl doppelter Genauigkeit (in vielen Sprachen unter double bekannt). Ganzzahlen im Wertebereich zwischen –253 und 253 (exklusive –253 und 253) werden jedoch als »sichere« Integer (Safe Integer) ohne Genauigkeitsverluste dargestellt:
const i: number = 42; // Safe Integer
const d: number = 0.815; // Fließkommazahl
Um einen Wert in eine number umzuwandeln, die JavaScript intern durch einen Integer repräsentiert, kommt die Funktion parseInt zum Einsatz. Für Fließkommazahlen steht hingegen parseFloat zur Verfügung. Möchte man prüfen, ob ein Wert eine gültige Zahl ist, nutzt eine Anwendung isNaN, wobei NaN für Not a Number steht:
const i2: number = parseInt('42', 10);
// String 42 als Integer.
// 10 ist die Basis (Dezimalsystem).
const d2: number = parseFloat('0.815');
// String 0.815 als Fließkommazahl.
const str: any = 'ein String';
if (isNaN(str)) {
console.debug('Ein String ist keine Zahl!');
}
Die explizite Angabe einer Basis bei parseInt wird empfohlen, da in der Vergangenheit unterschiedliche Browser hierfür verschiedene Standardwerte herangezogen haben.
Für dieses Experiment musste str als any deklariert werden. Ansonsten hätte das Typsystem den Aufruf isNaN(str) verhindert, zumal von vornherein klar ist, dass eine String-Variable keine Zahl ist.
Der Wert NaN kommt auch zum Einsatz, wenn das Ergebnis einer mathematischen Funktion nicht definiert ist. Ein Beispiel dafür ist die Division durch null (0).