L'objet Math

Parent Previous Next



L'objet Math



Après une première sous-partie assez peu intéressante, nous passons enfin à l'objet Math qui va réellement nous servir ! Tout d'abord, deux petites choses :


Les propriétés


Les propriétés de l'objet Math sont des constantes qui définissent certaines valeurs mathématiques comme le nombre pi (π) ou le nombre d'Euler (e). Nous ne parlons que de ces deux constantes car les autres ne sont pas souvent utilisées en Javascript. Pour les utiliser, rien de bien compliqué :

alert(Math.PI); // Affiche la valeur du nombre pi

alert(Math.E); // Affiche la valeur du nombre d'Euler


Voilà tout, les propriétés de l'objet Math ne sont pas bien dures à utiliser donc il n'y a pas grand-chose à vous apprendre dessus. En revanche, les méthodes sont nettement plus intéressantes !


Les méthodes


L'objet Math comporte de nombreuses méthodes permettant de faire divers calculs un peu plus évolués qu'une simple division. Il existe des méthodes pour le calcul des cosinus et sinus, des méthodes d'arrondi et de troncature, etc. Elles sont assez nombreuses pour faire bon nombre d'applications pratiques.


Arrondir et tronquer


Vous aurez souvent besoin d'arrondir vos nombres en Javascript, notamment si vous faites des animations. Il est par exemple impossible de dire à un élément HTML qu'il fait 23,33 pixels de largeur, il faut un nombre entier. C'est pourquoi nous allons aborder les méthodes floor()ceil() et round().


La méthode floor() retourne le plus grand entier inférieur ou égal à la valeur que vous avez passée en paramètre :

Math.floor(33.15); // Retourne : 33

Math.floor(33.95); // Retourne : 33

Math.floor(34);    // Retourne : 34


Concernant la méthode ceil(), celle-ci retourne le plus petit entier supérieur ou égal à la valeur que vous avez passée en paramètre :

Math.ceil(33.15); // Retourne : 34

Math.ceil(33.95); // Retourne : 34

Math.ceil(34);    // Retourne : 34


Et pour finir, la méthode round() qui fait un arrondi tout bête :

Math.round(33.15); // Retourne : 33

Math.round(33.95); // Retourne : 34

Math.round(34);    // Retourne : 34


Calculs de puissance et de racine carrée


Bien que le calcul d'une puissance puisse paraître bien simple à coder, il existe une méthode permettant d'aller plus rapidement, celle-ci se nomme pow() et s'utilise de cette manière :

Math.pow(3, 2); // Le premier paramètre est la base, le deuxième est l'exposant

// Ce calcul donne donc : 3 * 3 = 9


Concernant le calcul de la racine carrée d'un nombre, il existe aussi une méthode prévue pour cela, elle se nomme sqrt() (abréviation de square root) :

Math.sqrt(9); // Retourne : 3


Les cosinus et sinus


Lorsqu'on souhaite faire des calculs en rapport avec les angles, on a souvent recours aux fonctions cosinus et sinus. L'objet Math possède des méthodes qui remplissent exactement le même rôle : cos() et sin() (il existe bien entendu les méthodes acos() et asin()). Leur utilisation est, encore une fois, très simple :

Math.cos(Math.PI); // Retourne : -1

Math.sin(Math.PI); // Retourne : environ 0


Les valeurs d'angles sont exprimées en radians.


Retrouver les valeurs maximum ou minimum


Voici deux méthodes qui peuvent se révéler bien utiles : max() et min(). Elles permettent respectivement de retrouver les valeurs maximum et minimum dans une liste de nombres, qu'importe si les nombres sont dans un ordre croissant, décroissant ou aléatoire. Ces deux méthodes prennent autant de paramètres que de nombres à comparer :

Math.max(42, 4, 38, 1337, 105); // Retourne : 1337

Math.min(42, 4, 38, 1337, 105); // Retourne : 4


Choisir un nombre aléatoire


Il est toujours intéressant de savoir comment choisir un nombre aléatoire pour chaque langage que l'on utilise, cela finit toujours par servir un jour où l'autre. En Javascript, la méthode qui s'occupe de ça est nommée random() (pour faire original). Cette fonction est utile mais n'est malheureusement pas très pratique à utiliser comparativement à celle présente, par exemple, en PHP.


En PHP, il est possible de définir entre quels nombres doit être choisi le nombre aléatoire. En Javascript, un nombre décimal aléatoire est choisi entre 0 (inclus) et 1 (exclu), ce qui nous oblige à faire de petits calculs par la suite pour obtenir un nombre entre une valeur minimum et maximum.


Venons-en à l'exemple :

alert(Math.random()); // Retourne un nombre compris entre 0 et 1



Là, notre script est un peu limité du coup, la solution est donc de créer notre propre fonction qui va gérer les nombres minimum (inclus) et maximum (exclu) :

function rand(min, max, integer) {

 

    if (!integer) {

        return Math.random() * (max - min) + min;

    } else {

        return Math.floor(Math.random() * (max - min + 1) + min);

    }

 

}


Et voilà une fonction prête à être utilisée ! Le troisième paramètre sert à définir si l'on souhaite obtenir un nombre entier ou non.



Cette fonction est assez simple en terme de réflexion : on prend le nombre minimum que l'on soustrait au maximum, on obtient alors l'intervalle de valeur qui n'a plus qu'à être multiplié au nombre aléatoire (qui est compris entre 0 et 1), le résultat obtenu sera alors compris entre 0 et la valeur de l'intervalle, il ne reste alors plus qu'à lui ajouter le nombre minimum pour obtenir une valeur comprise entre notre minimum et notre maximum !


Nous pensons qu'il est bon de vous informer d'une certaine chose : la méthode random() de l'objetMath ne renvoie pas vraiment un nombre aléatoire, ce n'est d'ailleurs pas réellement possible sur un ordinateur. Cette méthode est basée sur plusieurs algorithmes qui permettent de renvoyer un nombre pseudo-aléatoire, mais le nombre n'est jamais vraiment aléatoire. À vrai dire, cela ne devrait pas vous affecter dans vos projets, mais il est toujours bon de le savoir.


Créé avec HelpNDoc Personal Edition: Générer des livres électroniques EPub facilement

Site à deux balles