Bom dia pessoal,
Porque o resultado da conta abaixo está dando 0.0?
double result = 60 / (15 * 10);
Bom dia pessoal,
Porque o resultado da conta abaixo está dando 0.0?
double result = 60 / (15 * 10);
Olá, tudo bem?
Isso chama-se, em Java, de promoção matemática, ou seja, se fizer calculos com variáveis do tipo int, o resultado será um int. Se misturar os tipos primitivos, as variáveis serão “promovidas” para o tipo maior.
O fato do resultado ser int devido a promoção matemática automaticamente cortou o ponto decimal dele transformado 0.4 -> 0
Outros exemplos:
int a = 1;
int b = 2;
double c = a / b; // resultado = 0
int x = 1;
float y = 2;
double z = x / y; // resultado = 0.5, pois “x” é promovida para float
Uma das soluções para sua operação matemática é dar casting nas variáveis para double.
Uma segunda abordagem definir os tipos dos valores antecipadamente para double evitando a necessidade de conversão.
Ambas chegarão ao mesmo resultado de : 0.4