"Olá, amigo!"

"Oi, Ellie!"

"Estou de bom humor hoje, então sinto vontade de contar algo interessante. Vou começar explicando como o sistema de tipos de Java lida com tipos primitivos."

" Em Java, cada objeto e cada variável tem seu próprio tipo imutável predefinido. O tipo de variável primitiva é determinado quando o programa é compilado, mas o tipo de objeto é determinado quando ele é criado. O tipo de um objeto e/ou variável recém-criado permanece inalterado ao longo de sua vida útil. Aqui está um exemplo:"

código Java Descrição
int a = 11;
int b = 5;
int c = a / b; // c == 2
a / b– representa a divisão inteira. A resposta é dois. O restante da operação de divisão é simplesmente ignorado.
int a = 13;
int b = 5;
int d = a % b; // d == 3
darmazenará o restante da divisão inteira de apor b. O restante é 3.

"Existem algumas nuances interessantes que você precisa lembrar."

"Primeiro, uma variável de referência nem sempre aponta para um valor que tem o mesmo tipo que ela."

"Segundo, quando variáveis ​​com dois tipos diferentes interagem, elas devem primeiro ser convertidas no mesmo tipo."

"E quanto à divisão? Se dividirmos 1 por 3, obteremos 0,333(3). Certo?"

"Não, isso não está certo. Quando dividimos dois números inteiros, o resultado também é um número inteiro. Se você dividir 5 por 3, a resposta será 1 com dois como resto. E o resto será ignorado."

"Se dividirmos 1 por 3, obteremos 0 (com lembrete 1, que será ignorado)."

"Mas o que eu faço se quiser obter 0,333?"

"Em Java, antes de realizar a divisão, é melhor converter um número em um tipo de ponto flutuante (fracionário) multiplicando por um número de ponto flutuante um (1.0)."

código Java Descrição
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

"Entendi."