Conversión de tipo (casting) de una variable en Java
EJEMPLO { ConversionDeTipo } Dado el siguiente código fuente de un programa:
public class ConversionDeTipo
{
public static void main(String[] args)
{
int base=3, altura=5;
double area;
area = base * altura / 2;
System.out.printf("Área del triángulo de base %d y altura %d: %f", base, altura, area);
}
}
Al compilarlo y ejecutarlo, en pantalla se visualizará:
Como se puede ver, el resultado no es correcto, ya que, el área del triángulo debería ser 7,5 en vez de 7,0. Esto es debido a que, al evaluar la expresión base * altura / 2, dado que todos los operandos son números enteros (int), el resultado de su evaluación también es un número entero.
Para resolver este problema, se puede realizar una conversión de tipo (casting). Por ejemplo, escribiendo:
area = (double) base * altura / 2;
De esta forma, se convierte el valor de la variable base a double, consiguiendo que el resultado de calcular el área sea double. Después de hacer este cambio en el código fuente del programa, en la pantalla se podrá ver:
El mismo resultado se obtendría dividiendo entre 2. (que es un número real) en vez de entre 2:
area = base * altura / 2.;
Al respecto, es conveniente conocer las dintintas conversiones de tipos primitivos que están permitidas en Java.