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, die größer oder gleich -1 ist.

Rückgabewert

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

Beschreibung

Für sehr kleine Werte von x kann die Addition von 1 die Genauigkeit verringern oder eliminieren. Die in JavaScript verwendeten Fließkommazahlen mit doppelter Genauigkeit bieten etwa 15 Stellen Präzision. 1 + 1e-15 = 1.000000000000001, aber 1 + 1e-16 = 1.000000000000000 und daher in dieser Arithmetik genau 1.0, da Stellen nach der 15. Stelle abgerundet werden.

Wenn Sie log(1 + x) berechnen, wobei x eine kleine positive Zahl ist, sollte das Ergebnis sehr nah an x liegen, weil: 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 ein Ergebnis nahe 1.1111111111e-15 erhalten. Stattdessen wird der Logarithmus von 1.00000000000000111022 berechnet (die Rundung erfolgt binär, was manchmal unschön ist), und das Ergebnis lautet 1.11022...e-15 mit nur 3 korrekten Stellen. Wenn Sie stattdessen Math.log1p(1.1111111111e-15) berechnen, erhalten Sie ein viel genaueres Ergebnis: 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 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® 2025 Language Specification
# sec-math.log1p

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
log1p

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch