holas creo que pude solucionar ese problema con los redondeos de la siguiente manera
Cita: total = total.divide(tc.getMonto(), 14, BigDecimal.ROUND_UP);
descu = descu.divide(tc.getMonto(), 14, BigDecimal.ROUND_UP);
pagar = pagar.divide(tc.getMonto(), 14, BigDecimal.ROUND_UP);
haci solo redondea lo necesario osea si es 14.4 se queda como 14.4
y si es
14.258258258258258258258
lo redondea a esa cantidad con 14 digitos osea
14.258258825825825
hasta ahi creo que se solucionono pero aun me queda algo que tratare de solucionar y estan en las restas
si resto
1445875452.23256-12.36
me da 2.0974455225e108
y eso me esta cusando conflictos