"¡Hola, amigo!"

"¡Hola, Ellie!"

"Hoy estoy de buen humor, así que tengo ganas de contarles algo interesante. Comenzaré con cómo el sistema de tipos de Java trata con los tipos primitivos".

" En Java, cada objeto y cada variable tiene su propio tipo invariable predeterminado. El tipo de una variable primitiva se determina cuando se compila el programa, pero el tipo de un objeto se determina cuando se crea. El tipo de un objeto y/o variable recién creado permanece sin cambios a lo largo de su vida útil. He aquí un ejemplo:"

codigo Java Descripción
int a = 11;
int b = 5;
int c = a / b; // c == 2
a / b– representa la división de enteros. La respuesta es dos. El resto de la operación de división simplemente se ignora.
int a = 13;
int b = 5;
int d = a % b; // d == 3
dalmacenará el resto de la división de enteros apor b. el resto es 3

"Hay un par de matices interesantes que debes recordar".

"Primero, una variable de referencia no siempre apunta a un valor que tiene el mismo tipo que tiene".

"Segundo, cuando las variables con dos tipos diferentes interactúan, primero deben convertirse en el mismo tipo".

"¿Qué pasa con la división? Si dividimos 1 entre 3, obtendremos 0.333(3). ¿Verdad?"

"No, eso no es correcto. Cuando dividimos dos números enteros, el resultado también es un número entero. Si divides 5 entre 3, la respuesta será 1 con dos como resto. Y el resto será ignorado".

"Si dividimos 1 entre 3, obtendremos 0 (con el recordatorio 1, que se ignorará)".

"Pero, ¿qué hago si quiero obtener 0.333?"

"En Java, antes de realizar la división, es mejor convertir un número a un tipo de punto flotante (fraccional) multiplicándolo por un número de punto flotante uno (1.0)".

codigo Java Descripción
int a = 1/3;
aserá 0
double d = 1/3;
 d será 0.0
double d = 1.0 / 3;
dserá 0.333(3)
double d = 1 / 3.0;
dserá 0.333(3)
int a = 5, b = 7;
double d = (a * 1.0) / b;
dserá 0.7142857142857143

"Entiendo."