Die Math.log1p()
Funktion gibt den natürlichen Logarithmus (Logarithmus zur Basis e
) von 1 + x zurück. Das bedeutet
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Syntax
Math.log1p(x)
Parameter
x
- Eine Zahl.
Rückgabewert
Den natürliche Logarithmus (zur Basis e
) von 1 plus der gegebenen Zahl. Wenn die Zahl kleiner als -1 ist, wird NaN
zurückgegeben.
Beschreibung
Für sehr kleine Zahlen für x
kann das Addieren mit 1 zu verlusten in der Präzision führen. Die Zahlen in JavaScript haben eine Genauigkeit von 15 Stellen. 1 + 1e-15 = 1.000000000000001
, aber 1 + 1e-16 = 1.000000000000000
und damit exakt 1
.0
in dieser Arithmetik, weil Ziffern nach der 15 Stelle gerundet werden.
Wenn log(1 + x)
berechnet wird, bekommt man ein Ergebnis sehr na an x
, wenn x
klein ist (das ist der Grund, warum es 'natürlicher' Logarithmus heißt). Wenn Math.log(1 + 1.1111111111e-15)
berechnet wird sollte man ein Ergebnis nah an 1.1111111111e-15
bekommt. Stattdessen berechnet man den Logarithmus von 1.00000000000000111022
(die Rundung geschieht im Binärsystem und ist manchmal unschön) un erhält das Ergebnis 1.11022...e-15
mit nur 3 korrekten Stellen. Wenn stattdessen Math.log1p(
1.1111111111e-15
)
berechnet wird, bekommt man ein besseres Ergebnis von 1.1111111110999995e-15
mit 15 korrekten Stellen in der Präzision (aktuell 16 in diesem Fall).
Wenn der Wert von x
kleiner als -1 ist, gibt die Funktion immer den Wert NaN
zurück.
Weil log1p()
eine statische Funktion von Math
ist, wird es immer als Math.log1p()
eingesetzt,
jedoch nicht als Methode eines erzeugten Math
Objektes (Math
ist kein Konstruktor).
Beispiele
Einsatz von Math.log1p()
Math.log1p(1); // 0.6931471805599453
Math.log1p(0); // 0
Math.log1p(-1); // -Infinity
Math.log1p(-2); // NaN
Polyfill
Diese Funktion kann folgendermaßen emuliert werden:
Math.log1p = Math.log1p || function(x) {
return Math.log(1 + x);
};
Spezifikationen
Spezifikation | Status | Kommentar |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'Math.log1p' in dieser Spezifikation. |
Standard | Initiale Definition. |
ECMAScript (ECMA-262) Die Definition von 'Math.log1p' in dieser Spezifikation. |
Lebender Standard |
Browserkompatibilität
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.