Problemas com subtração em BigDecimal

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!

Para esse número: 1.925.25, o BigDecimal deve ser instanciado com a String desse jeito:

new BigDecimal("1925.25");

Apenas coloca o ponto para as casas decimais.

2 curtidas