Math.log1p()
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.log1p()
gibt den natürlichen Logarithmus (Basis e) von 1 + x
zurück, wobei x
das Argument ist. Das bedeutet:
Probieren Sie es aus
console.log(Math.log1p(1));
// Expected output: 0.6931471805599453
console.log(Math.log1p(0));
// Expected output: 0
console.log(Math.log1p(-1));
// Expected output: -Infinity
console.log(Math.log1p(-2));
// Expected output: NaN
Syntax
Math.log1p(x)
Parameter
x
-
Eine Zahl, die größer oder gleich -1 ist.
Rückgabewert
Beschreibung
Für sehr kleine Werte von x kann das Hinzufügen von 1 die Genauigkeit reduzieren oder beseitigen. Die in JS verwendeten Gleitkommazahlen mit doppelter Genauigkeit bieten etwa 15 Stellen Genauigkeit. 1 + 1e-15 = 1.000000000000001, aber 1 + 1e-16 = 1.000000000000000 und deshalb genau 1.0 in dieser Arithmetik, da Zahlen ab der 15. Stelle abgerundet werden.
Wenn Sie log(1 + x) berechnen, wobei x eine kleine positive Zahl ist, sollten Sie eine Antwort erhalten, die sehr nahe bei x liegt, denn: . Wenn Sie Math.log(1 + 1.1111111111e-15)
berechnen, sollten Sie eine Antwort erhalten, die nahe bei 1.1111111111e-15
liegt. Stattdessen werden Sie den Logarithmus von 1.00000000000000111022
nehmen (die Rundung erfolgt binär, daher kann sie manchmal unschön sein) und die Antwort 1.11022…e-15 mit nur 3 korrekten Stellen erhalten. Wenn Sie stattdessen Math.log1p(1.1111111111e-15)
berechnen, erhalten Sie eine viel genauere Antwort, 1.1111111110999995e-15
, mit 15 korrekten Stellen (in diesem Fall sogar 16).
Wenn der Wert von x
kleiner als -1 ist, ist der Rückgabewert immer NaN
.
Da log1p()
eine statische Methode von Math
ist, verwenden Sie sie immer als Math.log1p()
und nicht als Methode eines von Ihnen erstellten Math
-Objekts (Math
ist kein Konstruktor).
Beispiele
Verwendung von Math.log1p()
Math.log1p(-2); // NaN
Math.log1p(-1); // -Infinity
Math.log1p(-0); // -0
Math.log1p(0); // 0
Math.log1p(1); // 0.6931471805599453
Math.log1p(Infinity); // Infinity
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-math.log1p |