JavaScript kennt nur einen Zahlentyp number (64-Bit-Kommazahl nach IEEE 754) für Ganzzahlen und Kommazahlen. Dazu gibt es das eingebaute Objekt Math mit vielen Funktionen.
Rechnen
| Operator | Bedeutung | Beispiel | Ergebnis |
|---|---|---|---|
+ - * / | Grundrechenarten | 7 / 2 | 3.5 |
% | Rest (Modulo) | 7 % 2 | 1 |
** | Potenz | 2 ** 10 | 1024 |
Ergebnis
3.5 1 1024 Infinity -Infinity NaN 9007199254740991 true
Division durch 0 gibt Infinity, 0 / 0 gibt NaN (Not a Number), keinen Fehler.
Das Kommazahlen-Problem
Kommazahlen werden binär gespeichert, deshalb sind manche nicht exakt darstellbar:
Ergebnis
0.30000000000000004 false true 0.30
Vergleiche Kommazahlen nie mit ===, sondern mit einer kleinen Toleranz. Für Geld rechnest du am besten in Cent (ganze Zahlen).
Runden
Ergebnis
5 4 5 4 -2 -3 4.6 4.6 1.234.567,891
Math-Funktionen
| Funktion | Wirkung |
|---|---|
Math.max(a, b, ...), Math.min(...) | größte/kleinste Zahl |
Math.abs(x) | Betrag |
Math.sqrt(x), Math.cbrt(x) | Quadrat-/Kubikwurzel |
Math.pow(a, b) | Potenz (wie **) |
Math.PI, Math.E | Konstanten |
Math.sin, Math.cos, Math.tan | Trigonometrie (Bogenmaß) |
Math.random() | Zufallszahl von 0 (einschl.) bis 1 (ausschl.) |
Math.hypot(a, b) | Länge der Hypotenuse |
Ergebnis
9 3 12 7.5 5 3.14159 8
Zufallszahlen
Math.random() liefert eine Kommazahl. Für eine ganze Zufallszahl zwischen min und max (beide inklusive):
Ergebnis
true
NaN prüfen
NaN ist nicht gleich sich selbst. Prüfe mit Number.isNaN:
Ergebnis
false true false true false false 13 5
Große Zahlen mit BigInt
Ganze Zahlen über 2⁵³ − 1 werden mit number ungenau. BigInt (mit Endung n) rechnet exakt:
Ergebnis
18446744073709552000 18446744073709551616n 246913578024691357802469135780n
Merke
- Es gibt nur
numberfür Zahlen (undBigIntfür riesige ganze Zahlen) %gibt den Rest,**die Potenz0.1 + 0.2 !== 0.3: Kommazahlen mit Toleranz vergleichenMath.round/floor/ceil/truncrunden verschieden;toFixedformatiertMath.random()liefert 0 bis unter 1;Number.isNaNprüft auf NaN
Aufgabe
Schreibe eine Funktion, die eine Zufallszahl zwischen 1 und 100 liefert, und gib sie zusammen mit ihrer Quadratwurzel auf zwei Nachkommastellen aus.