Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Duda] desafios

Hola compañeros, queria saber si me pueden ayudar con estos dos puntos que no se cual es la mejor opción ahora

Utiliza Math.random para generar un número entero entre 1 y 10 y muestra ese número en la consola.

  1. numeroAleatorio = Math.floor(Math.random)*10) + 1; console.log(numeroAleatorio);

  2. numeroAleatorio = parseInt(Math.random()*10) +1; console.log(numeroAleatorio)

Utiliza Math.random para generar un número entero entre 1 y 1000 y muestra ese número en la consola.

  1. numeroAleatorio = parseInt(Math.random()*1000) + 1; console.log(numeroAleatorio)

  2. numeroAleatorio = Math.floor(Math.random()*1000) + 1; console.log(numeroAleatorio)

Desde ya muchas gracias.

1 respuesta
solución!

¡HolaAlumno!

Diferencia entre Math.floor y parseInt

Ambas funciones tienen el propósito de trabajar con números, pero tienen diferencias clave en su comportamiento:


1. Math.floor

  • Qué hace: Redondea un número hacia abajo al entero más cercano, sin importar los decimales.
  • Ejemplo:
    Math.floor(4.9); // Resultado: 4
    Math.floor(4.1); // Resultado: 4
    
  • Uso típico: Se utiliza principalmente para redondear valores numéricos, como en el caso de generar números enteros aleatorios.

2. parseInt

  • Qué hace: Convierte una cadena de texto (o un número) en un entero, descartando cualquier contenido después del primer número válido.
  • Ejemplo:
    parseInt("4.9"); // Resultado: 4
    parseInt("4.1"); // Resultado: 4
    parseInt("123abc"); // Resultado: 123
    parseInt("abc123"); // Resultado: NaN
    
  • Uso típico: Su propósito principal es convertir cadenas de texto en números enteros. Aunque puede funcionar con números, no fue diseñado específicamente para redondear decimales.

¿Por qué Math.floor es más adecuado aquí?

  1. Claridad de propósito:

    • Math.floor se diseñó específicamente para redondear números hacia abajo, por lo que su uso en este caso deja claro que el objetivo es generar números enteros a partir de valores decimales.
  2. Evita comportamiento no deseado:

    • parseInt trata de interpretar la entrada como texto. Si accidentalmente pasas un valor no numérico o una cadena que empieza con un número, puede producir resultados inesperados.
    • Ejemplo problemático:
      parseInt("4.9hello"); // Resultado: 4
      
  3. No depende de conversiones implícitas:

    • Usar Math.floor garantiza que el valor es tratado directamente como un número, mientras que parseInt requiere que JavaScript convierta implícitamente números en cadenas en algunos casos, lo que puede ser menos eficiente.

Conclusión

Aunque parseInt funciona en este caso, Math.floor es más adecuado porque está diseñado para redondear números y su uso refleja claramente la intención del código. Esto no solo hace que el código sea más robusto y legible, sino que también reduce el riesgo de errores inesperados.

Espero que esto te ayude a resolver tus dudas. ¡Buena suerte con tus desafíos de programación!

Por favor, no olvides marcar este post como solucionado. ¡Es de gran ayuda para la comunidad! ✓ Sigue adelante con tus estudios.