¿Por qué BigDecimal ("5.50") no es igual a BigDecimal ("5.5") y cómo solucionar este problema?

En realidad, he encontrado una posible solución.

//returns true
new BigDecimal("5.50").doubleValue() == new BigDecimal("5.5").doubleValue()

Por supuesto, se puede mejorar con algo comoMath.abs (v1 - v2) < EPS para hacer la comparación más robusta, pero la pregunta es si esta técnica es aceptable o hay una mejor solución?

Si alguien sabe por qué los diseñadores de Java decidieron implementar los iguales de BigDecimal de esa manera, sería interesante leerlo.

Respuestas a la pregunta(3)

Su respuesta a la pregunta