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.
Please help us by answering a few questions.
Die statische Methode Math.log1p()
gibt den natürlichen Logarithmus (zur Basis e) von 1 + x
zurück, wobei x
das Argument ist. Das heißt:
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 größer oder gleich -1.
Rückgabewert
Beschreibung
Bei sehr kleinen Werten von x kann das Addieren von 1 die Präzision verringern oder eliminieren. Die in JS verwendeten Doppel-Fließkommazahlen bieten Ihnen etwa 15 Stellen Präzision. 1 + 1e-15 = 1.000000000000001, aber 1 + 1e-16 = 1.000000000000000 und daher genau 1,0 in dieser Arithmetik, da Stellen über 15 hinaus abgerundet werden.
Wenn Sie log(1 + x) berechnen, wobei x eine kleine positive Zahl ist, sollten Sie eine Antwort sehr nahe bei x erhalten, da: . Wenn Sie Math.log(1 + 1.1111111111e-15)
berechnen, sollten Sie eine Antwort in der Nähe von 1.1111111111e-15
erhalten. Stattdessen berechnen Sie jedoch den Logarithmus von 1.00000000000000111022
(die Rundung ist im Binärsystem, daher sieht es manchmal unschön aus) und erhalten die Antwort 1.11022…e-15, mit nur 3 korrekten Stellen. Wenn Sie stattdessen Math.log1p(1.1111111111e-15)
berechnen, erhalten Sie eine viel genauere Antwort, 1.1111111110999995e-15
, mit 15 korrekten Dezimalstellen (tatsächlich 16 in diesem Fall).
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® 2025 Language Specification # sec-math.log1p |