Question

pour mes tests de sélénium je besoin d'un fournisseur de valeur pour obtenir un numéro à 5 chiffres dans tous les cas. Le problème avec le javascript est que l'api de Math.random ne supporte que la génération d'un flotteur de départ 0.. Donc, il doit être entre 10000 et 99999.

Il serait facile si elle ne génère que 0.10000 et plus, mais il génère également 0.01000. Ainsi, cette approche ne réussit pas:

Math.floor(Math.random()*100000+1)

Est-il possible de générer un nombre à 5 chiffres dans tous les cas (dans une expression!)?

Était-ce utile?

La solution

Qu'en est-il:

Math.floor(Math.random()*90000) + 10000;

Autres conseils

Oui, vous pouvez créer des nombres aléatoires dans une plage donnée:

var min = 10000;
var max = 99999;
var num = Math.floor(Math.random() * (max - min + 1)) + min;

Ou simplifiée:

var num = Math.floor(Math.random() * 90000) + 10000;

si vous voulez générer dire un code postal, et ne me dérange pas des zéros aussi longtemps qu'il est 5 chiffres que vous pouvez utiliser:

(""+Math.random()).substring(2,7)

Vous pouvez obtenir un nombre entier aléatoire compris les numéros de min et max donné à l'aide de la fonction suivante:

function getRandomIntInclusive(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

Pour plus d'exemples et d'autres cas d'utilisation, extrayez de la

scroll top