IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ MooTools

FAQ MooToolsConsultez toutes les FAQ

Nombre d'auteurs : 6, nombre de questions : 67, dernière mise à jour : 15 juin 2021 

 
OuvrirSommaireLes nombres

La fonction random de Number a été créée à cet effet. Elle demande deux paramètres :

  • la valeur minimale ;
  • la valeur maximale.
 
Sélectionnez
var nombre_aleatoire = Number.random(1, 100); //Vaut un nombre entre 1 et 100 compris


[Obsolète]
Les versions 1.1 et 1.2 utilisent la fonction $random qui demande les mêmes paramètres :

 
Sélectionnez
var nombre_aleatoire = $random(1, 100); //Vaut un nombre entre 1 et 100 compris
Mis à jour le 1er décembre 2012  par vermine

Lien : Page de test

Nous allons commencer par regarder si notre variable est un entier ou non et vous allez voir que la fonction toInt() ne suffit pas :

 
Sélectionnez
var a = "10";
var b = 20;
var c = 30.40;
//var d = 50,60; //N'est pas une syntaxe JavaScript
var e = "70.80";
var f = "90,100";
var g = "110a";
var h = "b120";

alert(a.toInt()); //10
alert(b.toInt()); //20
alert(c.toInt()); //30
alert(e.toInt()); //70
alert(f.toInt()); //90
alert(g.toInt()); //110
alert(h.toInt()); //NaN


La résultat est en fait une partie entière extraite au mieux d'un float anglophone (x.y) ou francophone (x,y) et au pire d'une chaine de caractères. Ce qui ne nous avance pas nécessairement. Dans ce cas-là, nous utiliserons la fonction typeOf qui nous donnera effectivement la nature de la variable :

 
Sélectionnez
if(typeOf(c) == 'number')
   alert(c.toInt()); //30


Une chose à préciser, c'est que toInt() accepte un paramètre qui est la base. À savoir, nous calculons en base 10 et si on ne précise pas de paramètre, c'est 10 qui est la base par défaut :

 
Sélectionnez
var a = 10110;

alert(a.toInt()); //10110
alert(a.toInt(2)); //22 (la base 2 est le binaire)
alert(a.toInt(5)); //655
alert(a.toInt(10)); //10110
alert(a.toInt(16)); //65808


Outre les entiers, nous pourrions jouer avec les float. Voici quelques exemples :

 
Sélectionnez
var a = "10";
var b = 20;
var c = 30.40;
//var d = 50,60; //N'est pas une syntaxe JavaScript
var e = "70.80";
var f = "90,100";
var g = "110.14a";
var h = "b120.32";

alert(a.toFloat()); //10
alert(b.toFloat()); //20
alert(c.toFloat()); //30.4
alert(e.toFloat()); //70.8
alert(f.toFloat()); //90
alert(g.toFloat()); //110.14
alert(h.toFloat()); //NaN


Il n'y pas de base pour les float, d'ailleurs si vous passez un paramètre à la fonction, elle ne le prendra pas en compte.

Mis à jour le 1er décembre 2012  par vermine

On peut déterminer le nombre de chiffres que l'on souhaite après la virgule, et obtenir un résultat arrondi. Il existe à cet effet la fonction round qui arrondit de la manière suivante :

 
Sélectionnez
var a = 123.4567;
var b = 123.5;
var c = 123.6;

alert(a.round(1)); //123.5
alert(a.round(2)); //123.46
alert(a.round(3)); //123.457
alert(a.round()); //123
alert(b.round()); //124
alert(c.round()); //124

Faites attention, le paramètre peut être négatif. L'arrondi se fait alors sur les dizaines, centaines, etc. :

 
Sélectionnez
var a = 124;
var b = 125;
var c = 126;

alert(a.round(-1)); //120
alert(b.round(-1)); //130
alert(c.round(-1)); //130
alert(a.round(-2)); //100
alert(a.round(-3)); //0


Les exemples fonctionnent aussi avec un nombre négatif.

Créé le 1er décembre 2012  par vermine

On peut vérifier qu'un nombre est bien dans un intervalle donné et le forcer à respecter les limites grâce à la méthode limit :

 
Sélectionnez
alert((1).limit(1, 50.5)); //1
alert((10).limit(1, 50.5)); //10
alert((-10).limit(1, 50.5)); //1
alert((1.5).limit(0, 50.5)); //1.5
alert((50.5).limit(0, 50.5)); //50.5
alert((50.9).limit(0, 50.5)); //50.5
alert((100).limit(0, 50.5)); //50.5

Ca rend donc la valeur minimale ou maximale si le nombre dépasse les limites.

Créé le 31 décembre 2010  par vermine

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2010 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.