Como posso comparar se o BigDecimal
valor é maior que zero?
java
compare
bigdecimal
Santhosh
fonte
fonte
BigDecimal
implementaComparable
as funções de comparação, como élt, le, eq, ne
melhor ser movido para aComparableUtils
. Portanto, eles podem ser usados para outras classes, comoDate
tipos personalizados.Respostas:
É tão simples quanto:
A documentação para
compareTo
realmente especifica que ele retornará -1, 0 ou 1, mas oComparable<T>.compareTo
método mais geral só garante menos que zero, zero ou maior que zero para os três casos apropriados - então, normalmente, apenas me ater a essa comparação.fonte
value
tenha um valor igual a zero, mas uma escala diferente de zero (por exemplo, avalia em0.00
vez de0
). Você provavelmente quer considerar que é igual a zero. OcompareTo()
método realmente fará isso. Mas oequals()
método não. (Outra prova, se for o caso fosse necessário, que Loki ou um de seus avatares está vivo e bem e mudou-se para o desenvolvimento de software.)LocalDate
include,isBefore
seja uma indicação de que o Oracle se sente da mesma maneira. Não é o ideal, mas acho que é marginalmente mais legível nessas circunstâncias escrever umisGreaterThan
método utilitário .compareTo
retornar 0. Mas se você estiver preocupado, deve ser fácil para você testar.Melhor maneira possível :
fonte
String
inicializadaBigDecimal
para ver se é-
ou não? Esse é o meu melhor palpite de como isso poderia funcionar. Parece mais rápido para realmente determinar se o número é0
. Isso está correto? Muito obrigado antecipadamente Anton Bessonov!BigDecimal.compareTo()
método descompilado , verá que ele chamasignum()
duas vezes. Portanto, quanto ao desempenho,signum()
é melhor.Use a
compareTo()
função incorporada à classe.fonte
é mais seguro usar o método
compareTo()
console de impressão
compareTo()
retornaagora para o seu problema, você pode usar
ou
Espero que tenha ajudado.
fonte
O uso de ".intValue ()" no objeto BigDecimal não está correto quando você deseja verificar se é maior que zero. A única opção restante é o método ".compareTo ()".
fonte
fonte