type objeto como castear cast java random type-conversion parentheses

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.