Java - Divisiones por 0

 
Vista:

Divisiones por 0

Publicado por eugenio (1 intervención) el 02/02/2009 10:51:05
Hola, tengo una duda.

Está claro que 10 / 0 va a dar una EXCEPCIÓN.

Pero ahora lo interesante es esto:

¿ Por qué System.out.println(10 / 0.0); imprime INFYNITY

y int = (int) (10 / 0.0) imprime 2147483647 ? ¿por qué cada uno imprime una cosa?

¿Acaso ese número viene a ser infinito o es el máximo que puede guardar un int?


GRACIAS!!!!!!!!!!!!!!!!!!
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

RE:Divisiones por 0

Publicado por cucu (3 intervenciones) el 04/02/2009 14:31:04
hola, ese es el máximo valor que guarda un int (2^32/2)
Lo de divido entre dos es porque la mitad son positivos y la mitad negativos. saludos
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
sin imagen de perfil

RE:Divisiones por 0

Publicado por Richard (22 intervenciones) el 13/02/2009 18:37:36
Amigo al hacer un cast estas limitando el tamaño del resultado en bytes, por promocion aritmetica estas diviendo un entero entre un double, el resultado es un double, pero le haces el cast a int,por lo tanto al truncar el resultado no es acorde con lo buscad.
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