
La classe Math
Vous êtes ici : Accueil / Cours / Cours de Javascript / Progresser en Javascript
Particularité de la classe Math
La classe Math ne possède pas de constructeur, donc il n’est pas possible de l’instancier. Toutes ses propriétés et méthodes sont statiques. Ainsi, pour appeler chaque propriété ou méthode, il sera nécessaire de la préfixer par le nom de la classe. Exemple :
var m = new Math();
// Retourne une erreur :
alert( 5.max( 7 ) );
// Affiche 7
alert( Math.max( 5, 7) );
Propriétés de la classe Math
| Propriété | R/W | Description |
|---|---|---|
| Math.E | R | Retourne le nombre d’Euler : 2.718281828459045 ( approximation ) |
| Math.LN2 | R | Retourne le logarithme néperien de 2 : 0.6931471805599453 ( approximation ) |
| Math.LN10 | R | Retourne le logarithme néperien de 10 : 2.302585092994046 ( approximation ) |
| Math.LOG2E | R | Retourne le logarithme en base de 2 du nombre de Néper : 1.4426950408889634 ( approximation ) |
| Math.LOG10E | R | Retourne le logarithme en base de 10 du nombre de Néper : 0.4342944819032518 ( approximation ) |
| Math.PI | R | Retourne le nombre PI : 3.141592653589793 ( approximation ) |
| Math.SQRT1_2 | R | Retourne la racine carrée de 1/2 : 0.7071067811865476 ( approximation ) |
| Math.SQRT2 | R | Retourne la racine carrée de 2 : 1.4142135623730951 ( approximation ) |
Méthodes de la classe Math
| Méthode | Description |
|---|---|
| float Math.abs( float ) | Retourne la valeur absolue du nombre. |
| float Math.acos( float ) | Retourne l’Arccosinus en radians du nombre |
| float Math.asin( float ) | Retourne l’Arcsinus en radians du nombre |
| float Math.atan( float ) | Retourne l’Arctangente en radians du nombre |
| float Math.atan2( float, float ) | Retourne l’Arctangente en radians du quotient de ses arguments |
| int Math.ceil( float ) | Retourne l’entier supérieur du nombre |
| float Math.cos( float ) | Retourne le cosinus de l’angle |
| float Math.exp( float ) | Retourne l’exponentielle. |
| int Math.floor( float ) | Retourne l’entier inférieur du nombre |
| float Math.log( float ) | Retourne le logarithme naturel du nombre. |
| float Math.max( [float,...] ) | Retourne le maximum des arguments. |
| float Math.min( [float,...] ) | Retourne le minimum des arguments. |
| float Math.pow( float m, float n ) | Retourne le premier nombre à la puissance du second : mn |
| float Math.random() | Retourne un nombre pseudo-aléatoire entre 0 et 1, le 1 n’étant pas compris |
| int Math.round( float ) | Arrondit à l’entier le plus proche. |
| float Math.sin( float ) | Retourne le sinus de l’angle |
| float Math.sqrt( float ) | Retourne le racine carrée du nombre. |
| float Math.tan( float ) | Retourne la tangente de l’angle |
Le mot-clé with
Lorsque vous avez un certain nombre de calculs mathématiques, l’écriture Math.maMéthode() peut s’avérer lourde. Pensez à utiliser le mot-clé with :
var a = cos( 45 );
var b = max( 5, 7 );
}
// Equivalent de
var a = Math.cos( 45 );
var b = Math.max( 5, 7 );
Générer un nombre aléatoire entre m et n
Voici une implémentation de la fonction à partir de la fonction Math.random() :
return m + this.floor( this.random() * ( n - m + 1 ) );
}
Ajouter la précision de l’arrondi
Comme vous l’avez vu, l’arrondi est à l’entier le plus proche. Il peut arriver que vous vouliez arrondir au 1/10 près ou autre. Voici une petite modification de la classe Math qui permettra de rajouter un paramètre optionnel de précision :
Math._round = Math.round;
// Création de la nouvelle méthode
Math.round = function( m, n ) {
// S'il n'y a qu'un paramètre
if( !n ) {
// Retourner son arrond
return this._round( m );
}
else {
// Calculer la puissance de 10 pour le décalage
var pow = this.pow( 10, n );
// Arrondi du nombre décalé du nombre de digits voulu, puis redécalage
return this._round( m * pow ) / pow;
}
}



