JAVA - Cálculo retornando número com decimais sendo que o resultado é inteiro
4 respostas
java
A
ancarva
Antes não tinha este problema, mas não sei porque, de um tempo pra cá o meu programa financeiro em java começou a trazer o resultado com casas decimais mesmo que o resultado seja inteiro. Exemplo:
Em qualquer calculadora: 12,6 + 0,7 = 13,3
No JAVA: 12,6 + 0,7 = 13,29999999999999
Porém isso só acontece com alguns cálculos, outros ele retorna inteiro normal.
Alguém sabe porque?
Estou fazendo esses cálculos usando variáveis double ou float, em ambos dá esse problema.
Obrigado, já resolveu meu problema. Eu pesquisei sim amigo, não estava colocando as palavras corretas.
R
Rodrigo_Void
Contribua, poste a solução
A
ancarva
Eu tinha uma função que criei para um outro caso, para truncar ou arredondar valores. Ai acabei usando ela para estes casos também. Quando passo T, eu trunco, quando passo outro valor, arredondo. Segue a função:
{//T trunca, se não, arredonda pro mais próximo.if(x>0){if(“T”.equals(tipo))returnnewBigDecimal(String.valueOf(x)).setScale(numberofDecimals,BigDecimal.ROUND_FLOOR);elsereturnnewBigDecimal(String.valueOf(x)).setScale(numberofDecimals,BigDecimal.ROUND_HALF_EVEN);}else{if(“T”.equals(tipo))returnnewBigDecimal(String.valueOf(x)).setScale(numberofDecimals,BigDecimal.ROUND_CEILING);elsereturnnewBigDecimal(String.valueOf(x)).setScale(numberofDecimals,BigDecimal.ROUND_HALF_EVEN);}}