Fala galera, tudo certo? alguém sabe alguma solução pra subtração de milhar usando bigDecimal, como “1.925.25”? Eu estava quase finalizando a parte de finalização de venda quando me deparei com este erro, e não achei nenhuma forma de resolver o erro e exemplo de valor seguem na proxima imagem →
E esse é o método principal onde calcula tudo →
public static void calculaVenda() {
DecimalFormat df = new DecimalFormat("#,###.00");
BigDecimal valorTotal = new BigDecimal(JFrameFinalizacaoVenda.getFrameFinalizacaoVenda().textFieldSubTotalVenda.getText());
BigDecimal valorAReceber = new BigDecimal(JFrameFinalizacaoVenda.getFrameFinalizacaoVenda().textFieldValorAReceber.getText());
final BigDecimal valorTotalComDesconto = new BigDecimal(JFrameFinalizacaoVenda.getFrameFinalizacaoVenda().textFieldValorASerPago.getText().equals("")
? "0" : JFrameFinalizacaoVenda.getFrameFinalizacaoVenda().textFieldValorASerPago.getText());
if(JFrameFinalizacaoVenda.getFrameFinalizacaoVenda().textFieldValorASerPago.getText().equals("")) {
valorASerPago = valorTotal.subtract(valorAReceber);
totalPago = totalPago.add(valorAReceber);
} else if(Venda.haveADesc == true){
valorASerPago = valorTotalComDesconto.subtract(valorAReceber);
totalPago = totalPago.add(valorAReceber);
} else if(!JFrameFinalizacaoVenda.getFrameFinalizacaoVenda().textFieldValorASerPago.getText().equals("")){
valorASerPago = valorASerPago.subtract(valorAReceber);
totalPago = totalPago.add(valorAReceber);
}
JFrameFinalizacaoVenda.getFrameFinalizacaoVenda().textFieldValorASerPago.setText(String.valueOf(df.format(valorASerPago).replaceAll(",", ".")));
JFrameFinalizacaoVenda.getFrameFinalizacaoVenda().textFieldTotalPago.setText(String.valueOf(df.format(totalPago).replaceAll(",", ".")));
if(!Venda.haveADesc == true) {
if(totalPago.compareTo(valorTotal) == 1) {
JFrameFinalizacaoVenda.getFrameFinalizacaoVenda().textFieldTroco.setText(String.valueOf(valorTotal.subtract(totalPago)).replaceAll(",", "."));
JFrameFinalizacaoVenda.getFrameFinalizacaoVenda().textFieldValorASerPago.setText("0.00");
Venda.saveCupomMeiosPag();
Venda.finalizaVenda();
clearAllFrames();
} else if(totalPago.compareTo(valorTotal) == 0) {
Venda.saveCupomMeiosPag();
Venda.finalizaVenda();
clearAllFrames();
}
} else {
if(totalPago.compareTo(valorTotalComDesconto) == 1) {
JFrameFinalizacaoVenda.getFrameFinalizacaoVenda()
.textFieldTroco
.setText(String.valueOf(valorTotalComDesconto.subtract(totalPago)).replaceAll(",", "."));
JFrameFinalizacaoVenda.getFrameFinalizacaoVenda().textFieldValorASerPago.setText("0.00");
Venda.saveCupomMeiosPag();
Venda.finalizaVenda();
clearAllFrames();
} else if(totalPago.compareTo(valorTotalComDesconto) == 0) {
Venda.saveCupomMeiosPag();
Venda.finalizaVenda();
clearAllFrames();
}
}
JFrameFinalizacaoVenda.getFrameFinalizacaoVenda().textFieldValorAReceber.setText("");
}
quem souber como eu posso contornar isso e puder me ajudar e dar umas dicas. Desde já agradeço a atenção de todos!