Как я могу сравнить, если BigDecimal
значение больше нуля?
java
compare
bigdecimal
Santhosh
источник
источник
BigDecimal
реализуетComparable
функции сравнения, какlt, le, eq, ne
лучше перенести вComparableUtils
. Таким образом, они могут быть использованы для любых других классов, таких какDate
или пользовательских типов.Ответы:
Это так просто, как:
Документация
compareTo
фактически устанавливается , что он возвращает -1, 0 или 1, но более общийComparable<T>.compareTo
метод гарантирует только меньше нуля, равен нулю или больше нуля для соответствующих трех случаях - так что я обычно просто придерживаться этого сравнения.источник
value
имеет значение ноль, но ненулевой масштаб (например, он оценивает0.00
вместо0
). Вы, вероятно, хотите считать, что он равен нулю.compareTo()
Метод действительно будет делать это. Ноequals()
метод не будет. (Еще одно доказательство, если таковые были необходимы, что Локи или один из его аватаров живы и здоровы и перешли к разработке программного обеспечения.)LocalDate
include,isBefore
указывает на то, что Oracle чувствует то же самое. Это не идеал, но я думаю, что в этих обстоятельствах немного удобнее написать вспомогательныйisGreaterThan
метод.compareTo
вернуть 0. Но если вы беспокоитесь, вам будет легко протестировать.Возможен лучший способ :
источник
String
инициализированного,BigDecimal
чтобы увидеть, если это-
или нет? Это мое лучшее предположение о том, как это может работать. Кажется, быстрее, чтобы действительно определить, если число0
. Это верно? Огромное спасибо заранее Антону Бессонову!BigDecimal.compareTo()
метод, вы обнаружите, что он вызываетсяsignum()
дважды. Так что, насколько производительность идет,signum()
лучше.Используйте
compareTo()
функцию, встроенную в класс.источник
безопаснее использовать метод
compareTo()
консольная печать
compareTo()
возвращаетсяТеперь для вашей проблемы вы можете использовать
или
Я надеюсь, что это помогло вам.
источник
использование ".intValue ()" для объекта BigDecimal не правильно, если вы хотите проверить, является ли его значение больше нуля. Единственный оставленный вариант - метод .compareTo ().
источник
источник