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:

x>1,𝙼𝚊𝚝𝚑.𝚕𝚘𝚐𝟷𝚙(𝚡)=ln(1+x)\forall x > -1,\;\mathtt{\operatorname{Math.log1p}(x)}} = \ln(1 + x)

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

js
Math.log1p(x)

Parameter

x

Eine Zahl größer oder gleich -1.

Rückgabewert

Der natürliche Logarithmus (Basis e) von x + 1. Wenn x -1 ist, wird -Infinity zurückgegeben. Wenn x < -1, wird NaN zurückgegeben.

Beschreibung

Für sehr kleine Werte von x kann das Hinzufügen von 1 die Genauigkeit verringern oder eliminieren. Die doppelten Gleitkommazahlen, die in JS verwendet werden, bieten etwa 15 Stellen Genauigkeit. 1 + 1e-15 = 1.000000000000001, aber 1 + 1e-16 = 1.000000000000000 und daher genau 1,0 in dieser Arithmetik, da Stellen über 15 hinaus gerundet werden.

Wenn Sie den Logarithmus von (1 + x) berechnen, wobei x eine kleine positive Zahl ist, sollten Sie eine Antwort erhalten, die sehr nahe bei x liegt, da: limx0log(1+x)x=1\lim_{x \to 0} \frac{\log(1+x)}}{x} = 1. Wenn Sie Math.log(1 + 1.1111111111e-15) berechnen, sollten Sie eine Antwort nahe bei 1.1111111111e-15 erhalten. Stattdessen werden Sie den Logarithmus von 1.00000000000000111022 nehmen (die Rundung erfolgt binär, sodass es manchmal hässlich wird) und die Antwort 1.11022...e-15 erhalten, 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()

js
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

Browser-Kompatibilität

Siehe auch