|
Introducción a Java - Conversiones
Curso Introducción a Java
Anterior
Siguiente
Ya sabemos que hay conversiones automáticas en operaciones enteras. Algo similar ocurre cuando operamos con reales, o reales y enteros en una misma expresión. Veamos
las reglas sobre operadores binarios.
Si uno de los dos operandos es un double, el otro se convierte a double antes de aplicar la operación.
Si uno de los dos operandos es un float, el otro se convierte a float al operar (esta regla se aplica si no hay double involucrado).
Si uno de los dos operandos en un long, el otro se promueve a long (si no hay double, o float en la expresión).
Si no es ninguno de esos casos, los operandos se promueven a enteros.
Hay situaciones donde no queremos usar estas reglas implícitas, porque necesitamos explícitamente especificar alguna conversión adecuada. Veamos:
int seis=6;
int cuatro=4;
double resultado = 2.5 + seis/cuatro;
La variable resultado, es un real. Pero la evaluación es la siguiente:
Primero, se evalúa la división. Como los dos operandos son enteros, se efectúa una división de ese tipo, entre 6 y 4, resultando 1.
Luego, se suma a 2.5, dando que a la variable resultado se le asigna el valor 3.5.
En cambio, si convertimos a la variable seis, en un real, explícitamente:
double resultado = 2.5 + (double) seis/cuatro;
ahora conseguimos como resultado el valor 4.0.
|