Mathematische Operationen

In JavaScript sind Zahlen immer Floating Point Numbers, egal ob sie eine ganze Zahl, wie 101 oder eben 3.141 ist. Das können wir auch ganz einfach überprüfen:

console.log(23 === 23.0);

Floating Point Numbers

Die Präzision von Floating Point Numbers ist stark begrenzt, da solch eine Zahl mit dem Binärsystem dargestellt wird. So kann z.B. folgendes passieren:

console.log(0.1 + 0.2);
console.log(0.1 + 0.2 === 0.3);

Hier müssen wir einfach aufpassen, da wir es als Fehler von JavaScript bzw. allgemein von Computern hinnehmen müssen.

Konversion

Es gibt mehrere Möglichkeiten einen Wert in eine Zahl zu konvertieren:

console.log(Number('23'));
console.log(+'23');

console.log(Number.parseInt('30px', 10));
console.log(Number.parseFloat('2.5rem'));

Die beiden letzteren nennt man auch Parsing und ist nützlich um auch Strings mit Suffixen, z.B. CSS-Werten, in Zahlen umzuwandeln.

Überprüfung

Es gibt hauptsächlich zwei Methoden, um zu überprüfen, ob eine Zahl auch wirklich eine Zahl ist: isNaN() und isFinite(). Letzteres ist dabei deutlich zuverlässiger, da es auch Werte, wie Infinity abfangen kann:

console.log(Number.isNaN(20));
console.log(Number.isNaN('20'));
console.log(Number.isNaN(+'20X'));
console.log(object.isNaN(23 / 0));

console.log(Number.isFinite(20));
console.log(Number.isFinite('20'));
console.log(Number.isFinite(+'20X'));
console.log(Number.isFinite(23 / 0));

Wurzeln

Wir können Wurzeln mit der sqrt()-Methode beschreiben. Natürlich sind aber auch Brüche im Exponenten möglich um Wurzeln darzustellen:

console.log(Math.sqrt(25));
console.log(25 ** (1 / 2));
console.log(8 ** (1 / 3));

Aggregatfunktionen

JavaScript stellt uns zwei Aggregatfunktionen zur Verfügung, min() und max():

console.log(Math.max(5, 18, 23, 11, 2));
console.log(Math.min(5, 18, 23, 11, 2));

Konstanten

Zudem gibt uns JavaScript Zugriff auf die Konstanten π und e (Eulersche Zahl):

console.log(Math.PI); 
console.log(Math.E);

Random

Die random()-Funktion ermöglicht uns die Erstellung von zufälligen Zahlen:

console.log(Math.random());
console.log(Math.random() * 100);
console.log(Math.trunc(Math.random() * 100));

Runden

Auf Ganzzahlen runden

Beim Runden gibt es essenziell vier Methoden:

  • trunc(): entfernt alle Nachkommastellen

  • round(): rundet nach mathematischen Gesetzen auf die nächste Ganzzahl

  • ceil(): rundet immer auf

  • floor(): rundet immer ab

console.log(Math.trunc(23.3));

console.log(Math.round(23.3));
console.log(Math.round(23.9));

console.log(Math.ceil(23.3));
console.log(Math.ceil(23.9));

console.log(Math.floor(23.3));
console.log(Math.floor(23.9));

Auf Dezimalzahlen runden

Um auf Dezimalzahlen zu runden, nutzen wir die Methode toFixed().

console.log((2.7).toFixed(0));
console.log((2.7).toFixed(3));
console.log((2.345).toFixed(2));

console.log(+(2.7).toFixed(0));
console.log(+(2.7).toFixed(3));

Last updated