Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Math.log1p()

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

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:

∀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 (zur Basis e) von x + 1. Wenn x gleich -1 ist, wird -Infinity zurückgegeben. Wenn x < -1 ist, wird NaN zurückgegeben.

Beschreibung

Bei sehr kleinen Werten von x kann die Addition von 1 die Genauigkeit verringern oder ganz aufheben. 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 ist damit in dieser Arithmetik exakt 1.0, weil Stellen nach der 15. Stelle weggerundet werden.

Wenn Sie log(1 + x) berechnen, wobei x eine kleine positive Zahl ist, sollte das Ergebnis sehr nahe bei x liegen, denn: limx→0log⁡(1+x)x=1\lim_{x \to 0} \frac{\log(1+x)}}{x} = 1. Wenn Sie Math.log(1 + 1.1111111111e-15) berechnen, sollte das Ergebnis nahe bei 1.1111111111e-15 liegen. Stattdessen berechnen Sie den Logarithmus von 1.00000000000000111022 (die Rundung erfolgt im Binärsystem, weshalb das Ergebnis mitunter unschön aussieht) und erhalten 1.11022…e-15 – mit nur 3 korrekten Stellen. Wenn Sie stattdessen Math.log1p(1.1111111111e-15) berechnen, erhalten Sie das wesentlich genauere 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 von Ihnen erstellten Math-Objekts (Math ist kein Konstruktor).

Beispiele

Math.log1p() verwenden

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

Spezifikation
ECMAScript® 2027 Language Specification
# sec-math.log1p

Browser-Kompatibilität

Siehe auch