Math.expm1()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die statische Methode Math.expm1()
gibt e potenziert mit einer Zahl und davon subtrahiert 1 zurück. Das bedeutet:
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
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
Für sehr kleine Werte von x kann das Hinzufügen von 1 die Genauigkeit verringern oder eliminieren. Die in JavaScript verwendeten Gleitkommazahlen mit doppelter Genauigkeit bieten etwa 15 Stellen Genauigkeit. 1 + 1e-15 = 1.000000000000001, jedoch 1 + 1e-16 = 1.000000000000000 und somit genau 1.0 in dieser Arithmetik, da Stellen nach der 15. Stelle abgerundet werden.
Wenn Sie berechnen, wobei x eine Zahl ist, die sehr nahe bei 0 liegt, sollten Sie eine Antwort erhalten, die sehr nahe bei 1 + x ist, weil: . Wenn Sie Math.exp(1.1111111111e-15) - 1
berechnen, sollten Sie eine Antwort in der Nähe von 1.1111111111e-15
erhalten. Stattdessen, aufgrund der höchsten signifikanten Stelle im Ergebnis von Math.exp
, die die Einheitsziffer 1
ist, endet der endgültige Wert bei 1.1102230246251565e-15
mit nur 3 korrekten Stellen. Wenn Sie stattdessen Math.expm1(1.1111111111e-15)
berechnen, erhalten Sie eine weitaus genauere Antwort, 1.1111111111000007e-15
, mit 11 korrekten Nachkommastellen.
Da expm1()
eine statische Methode von Math
ist, verwenden Sie sie immer als Math.expm1()
, anstatt sie als Methode eines selbst erstellten Math
-Objekts zu verwenden (Math
ist kein Konstruktor).
Beispiele
Verwendung von Math.expm1()
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
Specification |
---|
ECMAScript® 2026 Language Specification # sec-math.expm1 |