Soma de valor negativo no BigDecimal

6 respostas
java
R

Prezados,

Estou dando manutenção em um extrato que recebe valores negativos e esperava que quando chegasse o valor negativo + negativo ele somasse e manteria o valor negativo estou usando BigDecimal e na formula indicada abaixo quando o valor vem negativo ele esta zerando e o calculo final fica errado:
BigDecimal totalRendimentos = totalAtualizacao.subtract(totalAnterior.add(contribuicoes));

contribuicoes é o valor quem deveria vir com a soma negativa.

Procurei uns tutoriais e so encontrei o que ja temia que o bigdecimal não soma negativo ele acaba zerando. vocês conhecem outra forma de respeitar essa informação?

6 Respostas

L

Tentei simular um cenário para esse trecho de código q vc postou:

BigDecimal totalAtualizacao = new BigDecimal("10");
BigDecimal totalAnterior = new BigDecimal("5");
BigDecimal contribuicoes = new BigDecimal("-3");
BigDecimal totalRendimentos = totalAtualizacao.subtract(totalAnterior.add(contribuicoes));

System.out.println(totalRendimentos); // Dá 8, pois: 10 - (5 + (-3)) = 8

Veja o cálculo para chegar no resultado 8. O que vc acha?

R

Lucas acredito que se o valor chegar negativo da maneira exemplificada por você da o resultado porque não são todos os cliente que reclamam. mas vou acrescentar aqui o trecho onde é feito a soma no caso dos valores negativos.
Seria assim:

BigDecimal A = new BigDecimal("-3");

BigDecimal B = new BigDecimal("-3");

BigDecimal contribuicoes = A.add(B);// aqui espero que dê -6 (seis negativo)
L

Dessa forma, esse código realmente retorna -6 em contribuicoes. Para vc dá um resultado diferente?

R

sim ele esta zerando então no caso ele só faz a subtração inicial.

L

Estranho que eu executei aqui e retornou -6, e não zero.

S

Posta o seu código inteiro.

Criado 21 de julho de 2020
Ultima resposta 22 de jul. de 2020
Respostas 6
Participantes 3