Math : méthode statique log1p()
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La fonction Math.log1p() retourne le logarithme népérien (en base e) d'un nombre +1, donné par la formule :
Exemple interactif
console.log(Math.log1p(1));
// Sortie attendue : 0.6931471805599453
console.log(Math.log1p(0));
// Sortie attendue : 0
console.log(Math.log1p(-1));
// Sortie attendue : -Infinity
console.log(Math.log1p(-2));
// Sortie attendue : NaN
Syntaxe
Math.log1p(x)
Paramètres
x-
Un nombre supérieur ou égal à -1.
Valeur de retour
La valeur du logarithme naturel (en base e) de x + 1. Si x est égal à -1, -Infinity est retourné. Si x est inférieur à -1, NaN est retourné.
Description
Pour des très petites valeurs de x, l'ajout de 1 peut réduire, voire éliminer, la précision. Les nombres à virgule flottante de type double utilisés en JS offrent une précision d'environ 15 chiffres. 1 + 1e-15 = 1,000000000000001, mais 1 + 1e-16 = 1,000000000000000 et donc exactement 1,0 dans ce calcul, car les chiffres au-delà du 15e sont arrondis.
Lorsque vous calculez log(1 + x), où x est un petit nombre positif, vous devez obtenir un résultat très proche de x car : . Si vous calculez Math.log(1 + 1.1111111111e-15), vous obtenez une réponse proche de 1.1111111111e-15. Au lieu de cela, vous finissez par calculer le logarithme de 1.00000000000000111022 (l'arrondi se fait en binaire, ce qui donne parfois des résultats peu esthétiques), et obtenez le résultat 1,11022…e-15, avec seulement 3 chiffres corrects. Si vous calculez plutôt Math.log1p(1.1111111111e-15), vous obtenez une réponse bien plus précise, 1.1111111110999995e-15, avec 15 chiffres corrects de précision (en réalité 16 dans ce cas).
Si la valeur de x est inférieure à -1, la valeur retournée est toujours NaN.
Puisque log1p() est une méthode statique de Math, vous l'utilisez toujours sous la forme Math.log1p(), plutôt que comme une méthode d'un objet Math que vous avez créé (Math n'est pas un constructeur).
Exemples
>Utiliser 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
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-math.log1p> |
Compatibilité des navigateurs
Voir aussi
- La prothèse d'émulation de
Math.log1pdanscore-js(angl.) - La prothèse d'émulation es-shims de
Math.log1p(angl.) - La méthode statique
Math.exp() - La méthode statique
Math.log() - La méthode statique
Math.expm1() - La méthode statique
Math.log10() - La méthode statique
Math.log2() - La méthode statique
Math.pow()