Capítulo 002 Ejercicio 021 (Convertir Números)

// ¿Qué ocurre cuando se convierte un float o un double a un valor entero?

/** La sentencia
*
* char c = (char)(Math.random() * 26 + 'a');
*
* merece una mirada más detallada. Math.random() produce un double, por lo que se convierte el
* valor 26 a double para llevar a cabo la multiplicación, que también produce un double. Esto
* significa que debe convertirse la 'a' a double para llevar a cabo la suma. El resultado double
* se vuelve a convertir en char con un molde.
*
* ¿Qué es lo que hace la conversión a char? Es decir, si se tiene el valor de 29.7 y se convierte
* a char, ¿cómo se sabe si el valor resultante es 30 ó 29? La respuesta a esta pregunta se puede ver
* en este ejemplo:
*
**/

public class ConvertirNumeros{
public static void main(String args[]){
double
encima = 0.7,
debajo = 0.4;
System.out.println("Encima: " + encima);
System.out.println("Debajo: " + debajo);
System.out.println("(int)encima: " + (int)encima);
System.out.println("(int)debajo: " + (int)debajo);
System.out.println("(char)('a' + encima): " + (char)('a' + encima));
System.out.println("(char)('a' + debajo): " + (char)('a' + debajo));
}
}

/** La salida es:
*
* --------------------Configuration: --------------------
* Encima: 0.7
* Debajo: 0.4
* (int)encima: 0
* (int)debajo: 0
* (char)('a' + encima): a
* (char)('a' + debajo): a
*
* Process completed.
*
* Por lo que la respuesta es que si se hace una conversión de un float o un double a un
* valor entero lo truncará.
*
**/