posible duplicado:
ArithmeticException thrown during BigDecimal.divideBigDecimals resultados en ArithmeticException
Esto se traduce en ArithmeticException: http://ideone.com/RXeZw
Proporcionar una escala y modo de redondeo me va a dar un resultado erróneo. Este ejemplo debería dar como resultado 50.03%. ¿Cómo redondear esto correctamente?
Para facilitar la referencia, este es el código:
BigDecimal priceDiff = BigDecimal.ONE
.subtract(new BigDecimal(9.99)
.divide(new BigDecimal(19.99)))
.multiply(new BigDecimal(100));
System.out.println(priceDiff.toPlainString());
sí, me confundí con todos estos números :-) – dtrunk
@dtrunk Me parece que usar 'double' es menos confuso. ;) –
No puedo usar el doble ya que causaría tantos cambios en el código – dtrunk