Estava eu aqui praticando e fazendo os exercícios do curso de java básico quando me deparei com a seguinte situação: declarei duas variáveis do tipo double,
E nas duas situações aparece um valor errado…se eu declarar as variáveis como float ou como double fica errado do mesmo jeito….alguem pode me esclarecer porque isso ocorre?
muito obrigado
Emerson
A expressão 100 / 3 produz um resultado do tipo int.
Experimente:
doublex=100f/3;
staroski
Em Java, toda divisão por int, resulta em um resultado inteiro, mesmo que a variável que recebe o valor seja float ou double.
Para resolver, faça com que o divisor seja float ou double.
Douglas_Venancio
Olá, como já explicado pelo @staroski, divisões de inteiros retornam resultados inteiros, por exemplo, se o resultado de uma divisão fosse 5.999… o Java retornaria somente a parte inteira, que é 5 e descartaria a parte decimal.
Para complementar ainda mais a resposta eu fiz um código referente ao seu pequeno problema.
floatval1=100;floatval2=3;floatr1=val1/val2;floatr2=val2/val1;System.out.printf("Valor de val1 é: %.2f \n",r1);//Imprimeovalordeval1formatacom2casasdecimais(%.2f)equebraalinha(\n)System.out.printf("Valor de val2 é: %.2f \n",r2);//Imprimeovalordeval2eformatacom2casasdecimais(%.2f)equebraalinhda(\n)
Também sou iniciante no Java, mas espero ter ajudado, e pros mais experientes que lerem meu código, aceito dicas para melhorar ele, será sempre muito bem vinda.