En realidad, he encontrado posible solución¿Por qué BigDecimal ("5.50") no es igual a BigDecimal ("5.5") y cómo evitar este problema?
//returns true
new BigDecimal ("5.50").doubleValue() == new BigDecimal("5.5").doubleValue()
Por supuesto, se puede mejorar con algo como Math.abs (v1 - v2) < EPS
para hacer la comparación más robusto, pero la pregunta es si esta técnica aceptable o hay una solución mejor?
Si alguien sabe por qué los diseñadores de Java decidieron implementar los equivalentes de BigDecimal de esa manera, sería interesante leerlo.
Si sus objetos BigDecimal están garantizados para estar siempre representable mediante dobles, entonces no debería estar utilizando BigDecimal de todos modos. Si no lo son, entonces este método va a fallar. – DJClayworth
Mala solución. Si los dobles son apropiados para su programa, use dobles. Si BigDecimals es apropiado, use BigDecimals. Casi nunca es útil convertir de ida y vuelta. – Jay
@DJClayworth: ¿dónde ves la etiqueta "editada"? – Roman