Java - Que significa esta linea de código?

 
Vista:

Que significa esta linea de código?

Publicado por Gorilla (1 intervención) el 11/11/2019 23:28:57
Buenas!

Esta claro que lo que hace es sacar un numero entero aleatorio con el método Math.random() pero yo tengo conocimientos medios sobre javascript y esta sintaxis me cuesta entendera es algo rara...


1
int rango = (int) (Math.random() * (10-5+1)+5);


que es eso que le asigna al principio (int) ? Se que es un tipo entero pero no entiendo muy bien el sentido y el calculo final me cuesta darle un sentido.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jaime
Val: 80
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Que significa esta linea de código?

Publicado por Jaime (39 intervenciones) el 12/11/2019 01:42:41
Hola compañero.
Eso que no entiende se llama "casting" Se hace para cambiar de tipo, una variable. Si no que ese tipo de casting es muy efectivo en C++, en java es más efectivo usar el método Estático parseInt. Así:
1
int rango = Integer.parseInt( (Math.random() * (10-5+1)+5));

En ese ejemplo se castea porque la función random devuelve un tipo float, entonce se castea porque se requiere un tipo entero.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Que significa esta linea de código?

Publicado por Rodrigo (623 intervenciones) el 12/11/2019 02:18:30
parseInt se usa con strings.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Que significa esta linea de código?

Publicado por Renxo (232 intervenciones) el 15/11/2019 01:20:26
La sentencia esta correcta, obtiene la parte entera del resultado del cálculo.

Y si, Integer.parseInt no sirve en este caso.

Saludos

Renzo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar