Pregunta

En mis pruebas de selenio necesito un proveedor de valor para obtener un número de 5 dígitos en todos los casos. El problema con javascript es que la API de Math.random sólo es compatible con la generación de un flotador 0. de partida. Así que tiene que estar entre 10000 y 99999.

Así que sería fácil si sólo se genera 0.10000 y superior, sino que también genera 0.01000. Por lo que este enfoque no tuviera éxito:

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

¿Es posible generar un número de 5 dígitos en todos los casos (en una expresión!)?

¿Fue útil?

Solución

¿Qué hay de:

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

Otros consejos

Sí, puede crear números aleatorios en cualquier intervalo dado:

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

O simplificada:

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

Si desea generar un código postal decir, y no les importa ceros a la izquierda, siempre y cuando sea de 5 dígitos que puede utilizar:

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

Se puede obtener un número entero aleatorio incluido de cualquier números max utilizando la siguiente función min y dado:

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

Para más ejemplos y otros casos de uso, comprobación la Math.random MDN documentación .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top