Signatur
Beschreibung
Math.E ist eine statische Konstante des Math-Objekts. Sie enthält die Eulersche Zahl e, die Basis des natürlichen Logarithmus, als IEEE-754-Gleitkommazahl mit doppelter Genauigkeit: 2.718281828459045.
Man braucht Math.E vor allem in Formeln aus Mathematik, Physik und Finanzwesen, etwa für stetiges Wachstum oder stetige Verzinsung, exponentiellen Zerfall, Wahrscheinlichkeitsverteilungen wie Normal- oder Poisson-Verteilung und die Sigmoid-Funktion in neuronalen Netzen.
Da Math kein Konstruktor ist, greift man immer direkt über Math.E darauf zu. Die Eigenschaft hat die Attribute writable: false, enumerable: false und configurable: false. Sie lässt sich also nicht überschreiben und taucht nicht auf, wenn man über die Eigenschaften von Math iteriert.
Für die Potenz ex nimmt man besser Math.exp(x) statt Math.E ** x. Das ist lesbarer und oft etwas genauer.
Rückgabewert
2.718281828459045.Beispiele
Wert ausgeben und prüfen
console.log(Math.E);
console.log(Math.log(Math.E)); // natürlicher Logarithmus von e
console.log(Math.E === Math.exp(1));
Stetige Verzinsung berechnen
// K = K0 * e^(r * t)
const stetigVerzinsen = (kapital, zinssatz, jahre) =>
kapital * Math.E ** (zinssatz * jahre);
const endwert = stetigVerzinsen(1000, 0.05, 10);
console.log(endwert.toFixed(2));
Sigmoid-Funktion für ein neuronales Netz
const sigmoid = (x) => 1 / (1 + Math.E ** -x);
const werte = [-2, 0, 2].map((x) => sigmoid(x).toFixed(4));
console.log(werte);
Konstante ist schreibgeschützt
'use strict';
try {
Math.E = 3;
} catch (err) {
console.log(err.constructor.name); // TypeError im Strict Mode
}
console.log(Math.E);
// Wichtig · Fallstricke
- Keine Funktion:
Math.E()wirft einenTypeError, weilMath.Eeine Zahl ist. - Schreibgeschützt: Wenn man
Math.Eetwas zuweist, wird das außerhalb des Strict Mode stillschweigend ignoriert. Im Strict Mode gibt es einenTypeError. - Genauigkeit: Der Wert ist auf etwa 15–17 signifikante Stellen genau (double precision). Rechnungen damit haben die üblichen Rundungsfehler von Gleitkommazahlen. Ergebnisse vergleicht man deshalb am besten mit einer Toleranz wie
Number.EPSILON. - Besser
Math.exp()undMath.expm1(): Für ex istMath.exp(x)vorzuziehen. Für sehr kleinexliefertMath.expm1(x)den Wert ex − 1 deutlich genauer alsMath.E ** x - 1. - Kompatibilität: Funktioniert in allen Browsern und in Node.js ohne Einschränkungen.