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)
3
respuestas

[Duda] 5 intentos

Hola, chicos

Una consulta, ¿saben para qué sirve Math.floor y parseInt?
Veo que está siendo usado en las respuestas del ejercicio "Solo 5 intentos"

3 respuestas

Hola,

let numeroSecreto = Math.floor(Math.random() * 10);
let intentos = 0;
while (intentos < 5) {
  let intento = parseInt(prompt("Ingrese un número del 0 al 9:"));
  intentos++;
  if (intento == numeroSecreto) {
    alert(`¡Eso es! Descubriste el número secreto ${numeroSecreto}`);
    break;
  }
}

El 'Math.random' es un método de Math que genera números aleatorios (0.0 a <1.0), por ejemplo:

let numeroSecreto = Math.random();
console.log(numeroSecreto);

Te saldría en la consola:
salida

Al multiplicar por 10 lo escala a un rango de 0 al 9.999...

let numeroSecreto = Math.random() *10;
console.log(numeroSecreto);

En la consola:
Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

El 'Math.floor' es otro método de Math que redondea hacia abajo (entero inferior más cercano)
Por ejemplo, si se genero el número '5.685...' con el método sería el número entero 5 :

let numeroSecreto = Math.floor(Math.random() * 10);

En la consola saldría un numero entero entre 0 y 9:
Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Con respecto al parseInt(), lo que hace en el código es convertir el string en número entero.

let intento = parseInt(prompt("Ingrese un número del 0 al 9:"));
console.log(typeof intento);

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Es necesario colocar el parseInt() porque el 'prompt()' siempre devuelve un string, aunque el usuario escriba un número 3 sería "3", si no colocaramos el parseInt() la variable 'intento' sería un string.

let intento = prompt("Ingrese un número del 0 al 9:");
console.log(typeof intento);

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad
Por esta razón es importante el parseInt().

solución!

Math.floor() redondea hacia abajo (hacia el entero más pequeño posible). Por ejemplo:
Math.floor(3.8) // 3
Math.floor(3.2) // 3
Math.floor(3.5) // 3
Math.floor(-5.1) // -6
Posdata con números negativos, “hacia abajo” significa más negativo.

y parseInt se usa para cambiar el tipo de dato a numero entero. Por ejemplo:
parseInt("42"); // 42
parseInt("42.9"); // 42 (descarta la parte decimal)
parseInt(" 42abc"); // 42 (ignora espacios y corta al encontrar letra)
parseInt("abc42"); // NaN (no empieza con número)

Muchas gracias Milton y Joe :D

Quería marcar como solución a ambas respuestas, pero al parecer solo permite marcar uno :c

En verdad muchas gracias por su explicación, chicos ✨