Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Math.expm1()

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Die statische Methode Math.expm1() gibt e hoch einer Zahl minus 1 zurück. Das heißt:

𝙼𝚊𝚝𝚑.𝚎𝚡𝚙𝚖𝟷(𝚡)=ex−1\mathtt{\operatorname{Math.expm1}(x)}} = \mathrm{e}^x - 1

Probieren Sie es aus

console.log(Math.expm1(0));
// Expected output: 0

console.log(Math.expm1(1));
// Expected output: 1.718281828459045

console.log(Math.expm1(-1));
// Expected output: -0.6321205588285577

console.log(Math.expm1(2));
// Expected output: 6.38905609893065

Syntax

js
Math.expm1(x)

Parameter

x

Eine Zahl.

Rückgabewert

Eine Zahl, die ex - 1 darstellt, wobei e die Basis des natürlichen Logarithmus ist.

Beschreibung

Bei sehr kleinen Werten von x kann die Addition von 1 die Genauigkeit verringern oder ganz aufheben. Die in JavaScript verwendeten Gleitkommazahlen mit doppelter Genauigkeit bieten etwa 15 signifikante Dezimalstellen. 1 + 1e-15 = 1.000000000000001, aber 1 + 1e-16 = 1.000000000000000 und damit in dieser Arithmetik exakt 1.0, weil Stellen nach der 15. signifikanten Dezimalstelle weggerundet werden.

Wenn Sie ex\mathrm{e}^x berechnen und x eine Zahl sehr nahe bei 0 ist, sollte das Ergebnis sehr nahe bei 1 + x liegen, denn: limx→0ex−1x=1\lim_{x \to 0} \frac{\mathrm{e}^x - 1}{x} = 1. Wenn Sie Math.exp(1.1111111111e-15) - 1 berechnen, sollte das Ergebnis nahe bei 1.1111111111e-15 liegen. Da die höchstwertige Ziffer im Ergebnis von Math.exp jedoch die Einerziffer 1 ist, ergibt sich letztlich 1.1102230246251565e-15 mit nur 3 korrekten Ziffern. Wenn Sie stattdessen Math.expm1(1.1111111111e-15) berechnen, erhalten Sie das wesentlich genauere Ergebnis 1.1111111111000007e-15 mit 11 korrekten Ziffern.

Da expm1() eine statische Methode von Math ist, verwenden Sie sie immer als Math.expm1() und nicht als Methode eines von Ihnen erstellten Math-Objekts (Math ist kein Konstruktor).

Beispiele

Math.expm1() verwenden

js
Math.expm1(-Infinity); // -1
Math.expm1(-1); // -0.6321205588285577
Math.expm1(-0); // -0
Math.expm1(0); // 0
Math.expm1(1); // 1.718281828459045
Math.expm1(Infinity); // Infinity

Spezifikationen

Spezifikation
ECMAScript® 2027 Language Specification
# sec-math.expm1

Browser-Kompatibilität

Siehe auch