Olá
estou tentando dividir o valor sendo vendido pelo valor de venda para saber a quantidade a ser vendida.
BigDecimal quantidade1 = preco.divide(produto.getValorVenda(), BigDecimal.ROUND_DOWN)
.setScale(3, BigDecimal.ROUND_HALF_UP);
assim ele me retorna 0 a divisão.
Já tentei assim:
BigDecimal quantidade1 = preco.divide(produto.getValorVenda(), 3, RoundingMode.HALF_UP);
mas ele me retorna muito preciso.
Me Ajudem pls!
Obrigado
@Janick_Robert Dá uma olhada no código e compara com o seu, aqui funcionou corretamente, é algo em outro ponto do código;
public class Teste {
public static void main(String[] args) {
System.out.println(new TesteLeitura().getMsg());
}
}
public class TesteLeitura {
public TesteLeitura() {
}
public String getMsg(){
return new TesteLeitura().calcularValor(new BigDecimal("12.30"), new TesteLeitura.Produto(new BigDecimal("3.00")));
}
private String calcularValor(BigDecimal preco, Produto produto) {
BigDecimal quantidade1 = preco.divide(produto.getValorVenda(), BigDecimal.ROUND_DOWN).setScale(3, BigDecimal.ROUND_HALF_UP);
return quantidade1.toString();
}
public class Produto {
private BigDecimal valorVenda;
public Produto(BigDecimal valorVenda) {
this.valorVenda = valorVenda;
}
public BigDecimal getValorVenda() {
return valorVenda;
}
public void setValorVenda(BigDecimal valorVenda) {
this.valorVenda = valorVenda;
}
}
}
então eu consegui resolver assim
BigDecimal quantidade1 = preco.divide(produto.getValorVenda(), 3, RoundingMode.HALF_UP);
quantidade = quantidade1.doubleValue();