Les fonctions mathématiques

avaScript est tout à fait adapté pour les calculs sur le poste du visiteur, de nombreuses fonctions mathématiques ont été implémentées.
Voici le sommaire de cette page.
1 - La conversion de chaînes en nombres
2 - L'objet JavaScript Math
3 - Des exemples utiles

La conversion de chaînes de caractères en nombres

Les fonctions de conversion
Une précédente page décrit en détail tous les traitements sur les chaînes de caractères.
En JavaScript, les variables ne sont pas typées, mais il est utile de savoir transformer une chaîne en un entier ou un réel (nombre à virgule).
Imaginons ce script :
   var chaine="3.14";
   var entier=parseInt(chaine);
   var reel=parseFloat(chaine);

A l'issue de ce script, entier contient 3 et reel contient 3.14

Est-ce un nombre ?
Supposons maintenant que la variable chaine soit initialisée avec "azerty"
   var chaine="azerty";
   var entier=parseInt(chaine);
   var reel=parseFloat(chaine);
   var rate=isNaN(entier);

A l'issue du script, entier et reel contiennent NaN, car "azerty" ne peut pas se convertir en nombre.
Pour détecter que chaine a bien le format d'un nombre, il existe une fonction isNaN(valeur) qui renvoie :
  - true  si valeur n'est pas un nombre
  - false si valeur est un nombre
Dans ce cas, rate est à vrai car la conversion a échoué.

ATTENTION, isNaN(valeur) retourne vrai si valeur  N'est PAS un nombre
Pour bien comprendre
Vous pouvez tester ces fonctions grâce à ce formulaire (essayez avec un nombre et avec une chaîne comme "azerty") :
chaine contient
entier contient isNaN(entier)=
reel   contient isNaN(reel)  =

Ces trois fonctions (attention aux majuscules) sont très utiles pour manipuler des variables en étant sur d'avoir affaire à des nombres. Cela permet par exemple de convertir une saisie dans un formulaire et de vérifier que le visiteur a bien entré un nombre (prix, quantité, âge, année, ...)



L'objet JavaScript Math
En JavaScript, la plupart des fonctions mathématiques sont des méthodes de l'objet Math. (Voir la page JavaScript, langage Objet pour plus de détail sur la programmation Objet)

Un exemple
Voici sûrement la fonction la plus utilisée, la génération d'un nombre aléatoire.
var nb=Math.random();
La méthode random() est appliquée à l'objet Math et retourne un nombre compris entre 0 et 1.
Toutes les autres fonctions mathématiques sont appelées sur le même principe.

Les fonctions de base
Math.abs(a) Retourne la valeur absolue de a
Math.round(a) Retourne l'entier arrondi le plus proche de a
Math.ceil(a) Retourne l'entier immédiatement supérieur (ou égal) à a
Math.floor(a) Retourne l'entier immédiatement inférieur (ou égal) à a
Math.sqrt(a) Retourne la racine carrée de a
Math.log(a) Retourne le logarithme de a
Math.ln(a) Retourne le logarithme népérien de a
Math.exp(a) Retourne l'exponentielle de a
Math.pow(a,b) Retourne a à la puissance b
Math.min(a,b) Retourne le plus petit des paramètres a ou b
Math.max(a,b) Retourne le plus grand des paramètres a ou b
Les fonctions trigonométriques
Réservées aux initiés !
Math.cos() Retourne le cosinus d'un angle en radians
Math.sin() Retourne le sinus d'un angle en radians
Math.tan() Retourne la tangente d'un angle en radians
Math.acos() Retourne l'arc cosinus en radians
Math.asin() Retourne l'arc sinus en radians
Math.atan() Retourne l'arc tangente en radians



Des exemples utiles
Générer un nombre aléatoire entier entre 1 et N
Imaginons le lancer de trois dés à 6 faces :
- -
   function aleatoire(N) {
      return (Math.floor((N)*Math.random()+1));
   }

La fonction retourne un nombre aléatoire entier entre 1 et N


Une horloge dynamique à aiguilles
REMARQUES :
Ce paragraphe s'appelle Exemples utiles :)
Donc, vous n'y trouverez pas les scripts de calcul d'aires de triangles, cercles, losanges...
Ni les jeux sans intérêt "plus petit-plus grand", "devine un nombre", etc...

Une horloge à aiguilles, ca peut être marrant, non ? Et en plus, c'est très bon pour revoir la trigonométrie.
Télécharger le script

Un convertisseur francs-euros
Saisissez des francs ou des euros et cliquez sur "Convertir"
Utile pour les sites de commerce en ligne...
FF Euros
Télécharger le script

Aucun commentaire:

Enregistrer un commentaire