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
Syntax
Math.log1p(x)
Parameter
x
-
Eine Zahl größer oder gleich -1.
Rückgabewert
Beschreibung
Bei sehr kleinen Werten von x kann das Hinzufügen von 1 die Genauigkeit verringern oder beseitigen. Die in JavaScript verwendeten Double-Floats bieten etwa 15 Stellen Genauigkeit. 1 + 1e-15 = 1.000000000000001, aber 1 + 1e-16 = 1.000000000000000 und daher exakt 1.0 in dieser Arithmetik, da Stellen nach der 15. abgerundet werden.
Wenn Sie log(1 + x) berechnen, wobei x eine kleine positive Zahl ist, sollten Sie eine Antwort erhalten, die sehr nah an x liegt, weil:
. Wenn Sie Math.log(1 + 1.1111111111e-15)
berechnen, sollten Sie eine Antwort nahe 1.1111111111e-15
erhalten. Stattdessen werden Sie den Logarithmus von 1.00000000000000111022
(das Rundungsergebnis ist binär, sodass es manchmal unschön wird) nehmen und die Antwort 1.11022…e-15 erhalten, mit nur 3 korrekten Ziffern. Wenn Sie stattdessen Math.log1p(1.1111111111e-15)
berechnen, erhalten Sie eine viel genauere Antwort, 1.1111111110999995e-15
, mit 15 korrekten Stellen (eigentlich 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 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 Language Specification # sec-math.log1p |
Browser-Kompatibilität
BCD tables only load in the browser