Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

283
Vistas
JavaScript: diferencia entre los resultados de funciones aleatorias

¿Hay alguna diferencia entre los resultados de Math.floor(Math.random() * x) + 1 y Math.ceil(Math.random() * x) ?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Math.random() produce valores de punto flotante en el intervalo [0, 1) (de cero inclusive a uno exclusivo ). Esto significa que hay una ligera diferencia entre los dos enfoques:

Math.ceil(Math.random() * x) producirá números enteros en el intervalo [0, x] (desde cero inclusive hasta x inclusive ). Esto se debe a que Math.ceil(0) devolverá un cero. Aunque la posibilidad de conseguir eso es extremadamente pequeña.

 function minRandom() { return 0; } function maxRandom() { return 0.9999999; } const x = 10; console.log("min:", Math.ceil(minRandom() * x)); console.log("max:", Math.ceil(maxRandom() * x));

Math.floor(Math.random() * x) + 1 producirá números enteros en el intervalo [1, x] (desde uno inclusive hasta x inclusive ). Esto se debe a que Math.floor(Math.random() * x) produce enteros en el intervalo [0, x-1] (de cero inclusive a x-1 inclusive ).

 function minRandom() { return 0; } function maxRandom() { return 0.9999999; } const x = 10; console.log("min:", Math.floor(minRandom() * x) + 1); console.log("max:", Math.floor(maxRandom() * x) + 1);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Sí, hay una diferencia.

Existe la posibilidad, aunque muy pequeña , de que la segunda versión devuelva cero inesperadamente.

Esto sucede si Math.random() en sí mismo devuelve exactamente 0.0, lo que legalmente puede hacer.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Sí hay.

...(Math.Random() * 20) - dará resultados entre 0 y 19.99999999999, por lo que en realidad no sube a 20.

...(Math.Random() * 20) + 1 - dará resultados entre 0 y 20.99999999, que en realidad podría incluir 20.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda