У каждого объекта класса BigDecimal
есть метод, который compareTo
вы можете использовать для сравнения с другим BigDecimal. Результат compareTo
сравнивается > 0
, == 0
или в < 0
зависимости от того, что вам нужно. Прочтите документацию, и вы узнаете.
Операторы ==
, <
, >
и так далее могут быть использованы только на примитивных типов данных , таких как int
, long
, double
или их классов обертки , как Integer
и Double
.
Из документации compareTo
:
Сравнивает это BigDecimal
с указанным BigDecimal
.
Два BigDecimal
объекта равной стоимости, но разного масштаба (например, 2.0 и 2.00) считаются равными по этому методу. Этот метод предоставляется вместо отдельных методов для каждого из шести логических операторов сравнения (<, ==,>,> =,! =, <=). Предлагаемая идиома для выполнения этих сравнений:, (x.compareTo(y) <op> 0)
где<op>
- один из шести операторов сравнения.
Возвращает: -1, 0 или 1, поскольку этот BigDecimal численно меньше, равен или больше val.
BigDecimal
как естьObject
, нет, это не работает. Но вы можете просто вычесть их друг из друга и проверить, будет ли полученное значение<0
,==0
или>0
. В противном случае вы могли бы пойти стандартным путем с предоставленными методами из BigDecimal