Dúvida com BigDecimal

2 respostas Resolvido
programaçãojava
well

Estou com uma dúvida, sempre trabalhei com double, estou usando o BigDecimal agora, por se tratar de um projeto com valores mais precisos, porém tinha a seguinte situação com o double:

public void adicionaItem(Item item) {
		   
valorTotal += item.getProduto().getValor() * item.getQuantidade()
			
		itens.add(item);		;
</code>

toda vez que eu adiciono um item no carrinho ele soma e da o valor total, mais agora estou mudando para BigDecimal e coloquei assim:
<code>
public void adicionaItem(Item item) {
		    valorTotal = BigDecimal.ZERO;
		//tentei assim conforme li nos foruns 
valorTotal=valorTotal.add(item.getProduto().getValor().multiply(BigDecimal.valueOf(item.getQuantidade())));			
		itens.add(item);

porém quando adiciono o item, não soma com o anterior, só mostra o valor do item adicionado!
Sei que isso é dúvida de iniciante, mais poderiam me dar uma mão!

2 Respostas

D
Solucao aceita

Pra mim parece certo, tente dividir toda essa conta em várias linhas e depurar, verificando o que ocorre.

BigDecimal valor = item.getProduto().getValor();
System.out.println(valor);
BigDecimal qtd = BigDecimal.valueOf(item.getQuantidade());
System.out.println(qtd);
BigDecimal valorTotal = valor.multiply(qtd);
System.out.println(valorTotal);
well

Obrigado Pela orientação! estava certo porém declarei a variável dentro do metodo valorTotal = BigDecimal.ZERO; por isso não dava certo, foi descuido meu! Obrigado!

Criado 16 de julho de 2017
Ultima resposta 25 de ago. de 2017
Respostas 2
Participantes 2