Math : méthode statique log()
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 méthode statique Math.log() retourne le logarithme naturel (base e) d'un nombre. C'est-à-dire
Exemple interactif
function getBaseLog(x, y) {
return Math.log(y) / Math.log(x);
}
// 2 x 2 x 2 = 8
console.log(getBaseLog(2, 8));
// Sortie attendue : 3
// 5 x 5 x 5 x 5 = 625
console.log(getBaseLog(5, 625));
// Sortie attendue : 4
Syntaxe
Math.log(x)
Paramètres
x-
Un nombre supérieur ou égal à 0.
Valeur de retour
Le logarithme naturel (base e) de x. Si x est ±0, retourne -Infinity. Si x < 0, retourne NaN.
Description
Parce que log() est une méthode statique de Math, vous l'utilisez toujours comme Math.log(), plutôt que comme une méthode d'un objet Math que vous avez créé (Math n'est pas un constructeur).
Si vous avez besoin du logarithme naturel de 2 ou 10, utilisez les constantes Math.LN2 ou Math.LN10. Si vous avez besoin d'un logarithme en base 2 ou 10, utilisez Math.log2() ou Math.log10(). Si vous avez besoin d'un logarithme dans d'autres bases, utilisez Math.log(x) / Math.log(otherBase) comme dans l'exemple ci-dessous ; vous pouvez vouloir pré-calculer 1 / Math.log(otherBase) puisque la multiplication dans Math.log(x) * constant est beaucoup plus rapide.
Attention aux nombres positifs très proches de 1 qui peuvent subir une perte de précision et rendre leur logarithme naturel moins précis. Dans ce cas, vous pouvez utiliser Math.log1p à la place.
Exemples
>Utiliser Math.log()
Math.log(-1); // NaN
Math.log(-0); // -Infinity
Math.log(0); // -Infinity
Math.log(1); // 0
Math.log(10); // 2.302585092994046
Math.log(Infinity); // Infinity
Utiliser Math.log() pour construire un logarithme sur une autre base
La fonction suivante retourne le logarithme de y de base x (c'est-à-dire ) :
function getBaseLog(x, y) {
return Math.log(y) / Math.log(x);
}
Si vous exécutez getBaseLog(10, 1000), la fonction retourne 2.9999999999999996 en raison de l'arrondi en virgule flottante, mais ce résultat reste très proche de la réponse réelle, qui est 3.
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-math.log> |
Compatibilité des navigateurs
Voir aussi
- La méthode statique
Math.exp() - La méthode statique
Math.log1p() - La méthode statique
Math.log10() - La méthode statique
Math.log2() - La méthode statique
Math.pow()