FAQ MooToolsConsultez toutes les FAQ
Nombre d'auteurs : 6, nombre de questions : 67, dernière mise à jour : 1 décembre 2012
La fonction random de Number a été créée à cet effet. Elle demande deux paramètres :
- la valeur minimale ;
- la valeur maximale.
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 :
var
nombre_aleatoire =
$random
(1
,
100
);
//
Vaut
un
nombre
entre
1
et
100
compris
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 :
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 :
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 :
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 :
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.
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 :
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. :
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.
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 :
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.