Почему BigDecimal («5.50») не равно BigDecimal («5.5») и как обойти эту проблему?

На самом деле, Я нашел возможное решение

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

. Конечно, его можно улучшить с помощью чего-то вроде Math.abs (v1 - v2) , чтобы сделать сравнение более надежным, но вопрос в том, приемлем ли этот метод или есть лучшее решение?

Если кто-то знает, почему разработчики Java решили реализовать BigDecimal equals таким образом, было бы интересно прочитать.

49
задан buræquete 19 June 2018 в 17:08
поделиться