objeto - java object to type
Escriba Casting Math.random? (2)
Eché un vistazo a las preguntas en este sitio y no pude encontrar la respuesta que estaba buscando sobre el tipo de conversión del método Math.random()
de double a int. Mi pregunta es, ¿por qué Math.random
solo devuelve un 0 sin paréntesis mientras que devuelve números aleatorios cuando está contenido entre paréntesis? La primera parte del código devuelve 0:
int number;
number = (int) Math.random() * 10;
System.out.println("/nThe random number is " + number);
Este código funciona sin embargo:
int number;
number = (int) (Math.random() * 10);
System.out.println("/nThe random number is " + number);
Cabe señalar que he visto algunas piezas de código diferentes en el encasillamiento por el cual algunos programadores parecen usar ambas formas de fundición.
Este código:
number = (int) Math.random() * 10;
primero calcula esto:
(int) Math.random()
Como Math.random()
devuelve un número de 0 hasta, pero sin incluir 1, si lo lanzas a int, redondeará a 0. Luego, al multiplicar 10 a 0 obtienes 0.
Math.random () devuelve un número de 0 a 1. Desea convertir el resultado de (Math.random () * 10) a int, no el número que obtiene de Math.random. Los números se redondean hacia abajo. Por lo tanto, por ejemplo, 0.3, que puede obtener de Math.random, se redondea a 0. De nuevo, desea redondear el resultado de 0.3 por 10, que es 3. El paréntesis es importante.