On génère des nombres aléatoires avec Math.random(). Le problème est que cette méthode retourne un nombre à virgule flottante dans l'intervalle [0, 1[, alors qu'on est le plus souvent à la recherche de nombres entiers.
Le code suivant montre étape par étape comment obtenir un nombre entier aléatoire dans un intervalle de 1 à 100 :
let rand = Math.random(); console.log(rand); // 0 à 0.999999... let nombre = rand * 100; console.log(nombre); // 0 à 99.999999... // la méthode Math.ceil(), pour "ceiling" (plafond), arrondi le nombre // vers le haut nombre = Math.ceil(nombre); console.log(nombre); // 1 à 100
On a donc :
// génère un nombre entier aléatoire dans un intervalle de 1 à 100 let nombre = Math.ceil( Math.random() * 100 );
Certaines personne ont l'habitude d'utiliser Math.floor() pour arrondir vers le bas. Dans ce cas il ne faut pas oublier d'additionner 1 :
// génère un nombre entier aléatoire dans un intervalle de 0 à 99 nombre = Math.floor( Math.random() * 100 ); // génère un nombre entier aléatoire dans un intervalle de 1 à 100 nombre = Math.floor( Math.random() * 100 + 1 );