89 votos

Comparar si BigDecimal es mayor que cero

¿Cómo puedo comparar si el valor de BigDecimal es mayor que cero?

168voto

Jon Skeet Puntos 692016

Es tan simple como:

if (valor.compareTo(BigDecimal.ZERO) > 0)

La documentación para compareTo realmente especifica que devolverá -1, 0 o 1, pero el método más general Comparable.compareTo solo garantiza menor que cero, cero o mayor que cero para los tres casos apropiados, por lo que normalmente solo me atengo a esa comparación.

66voto

Anton Bessonov Puntos 1801

Posible mejor manera:

if (value.signum() > 0)

signum devuelve -1, 0, o 1 dependiendo de si el valor de este BigDecimal es negativo, cero o positivo.

9voto

duffymo Puntos 188155

Usa la función compareTo() que está integrada en la clase.

3voto

yOshi Puntos 19

Es más seguro usar el método compareTo()

    BigDecimal a = new BigDecimal(10);
    BigDecimal b = BigDecimal.ZERO;

    System.out.println(" resultado ==> " + a.compareTo(b));

impresión en consola

    resultado ==> 1

compareTo() devuelve

  • 1 si a es mayor que b
  • -1 si a es menor que b
  • 0 si a es igual a b

ahora para tu problema puedes usar

if (valor.compareTo(BigDecimal.ZERO) > 0)

o

if (valor.compareTo(new BigDecimal(0)) > 0)

Espero que te haya ayudado.

0voto

Satya M Puntos 11

Usar ".intValue()" en un objeto BigDecimal no es correcto cuando quieres verificar si es mayor que cero. La única opción que queda es el método ".compareTo()".

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X