¿Cómo puedo comparar si el BigDecimal
valor es mayor que cero?
java
compare
bigdecimal
Santhosh
fuente
fuente
BigDecimal
implementaComparable
las funciones de comparación comolt, le, eq, ne
mejor moverlo a aComparableUtils
. Por lo tanto, se pueden usar para cualquier otra claseDate
o tipo personalizado.Respuestas:
Es tan simple como:
La documentación para
compareTo
realmente especifica que devolverá -1, 0 o 1, pero elComparable<T>.compareTo
método más general solo garantiza menos que cero, cero o mayor que cero para los tres casos apropiados, por lo que generalmente me limito a esa comparación.fuente
value
tiene un valor de cero pero una escala distinta de cero (por ejemplo, se evalúa en0.00
lugar de0
). Probablemente quieras considerar que es igual a cero. ElcompareTo()
método efectivamente hará esto. Pero elequals()
método no lo hará. (Otra prueba, si fuera necesaria, de que Loki o uno de sus avatares está vivo y bien y se ha trasladado al desarrollo de software)LocalDate
include,isBefore
sea una indicación de que Oracle siente lo mismo. No es lo ideal, pero creo que es marginalmente más legible en estas circunstancias escribir unisGreaterThan
método de utilidad .compareTo
devolver 0. Pero si está preocupado, debería ser fácil para usted probar.Posible mejor manera :
fuente
String
inicializadoBigDecimal
para ver si es-
o no? Esa es mi mejor suposición de cómo podría funcionar. Parece más rápido para determinar realmente si el número es0
. ¿Es esto correcto? Muchas gracias de antemano Anton Bessonov!BigDecimal.compareTo()
método descompilado , encontrará que llamasignum()
dos veces. Por lo que respecta al rendimiento,signum()
es mejor.Use la
compareTo()
función que está integrada en la clase.fuente
es más seguro usar el método
compareTo()
impresión de consola
compareTo()
devolucionesahora para tu problema puedes usar
o
Espero que te haya ayudado.
fuente
el uso de ".intValue ()" en el objeto BigDecimal no es correcto cuando desea verificar si es mayor que cero. La única opción que queda es el método ".compareTo ()".
fuente
fuente