Función BigDecimal compareTo() en Java

El método java.math.BigDecimal.compareTo(BigDecimal bg) comprueba la igualdad de este objeto BigDecimal y BigDecimal bg pasado como parámetro. El método considera dos objetos BigDecimal iguales incluso si tienen el mismo valor independientemente de la escala.

Sintaxis:

public int compareTo(BigDecimal bg)

Parámetros: esta función acepta solo un objeto BigDecimal de tipo BigDecimal para compararlo con este objeto BigDecimal.

Valor de retorno: este método puede devolver los siguientes valores:

  • 0 : si el valor de este BigDecimal es igual al del objeto BigDecimal pasado como parámetro.
  • 1 : si el valor de este BigDecimal es mayor que el del objeto BigDecimal pasado como parámetro.
  • -1 : si el valor de este BigDecimal es menor que el del objeto BigDecimal pasado como parámetro.

Nota: la función devuelve verdadero cuando compara 124,0 y 124,0000, ya que no compara la escala de los dos objetos BigDecimal.

Ejemplos:

Input : b1 = new BigDecimal("4743.0008"),  b2 = new BigDecimal("4743.00001")
        b1.compareTo(b2)
Output : 1

Input : b1 = new BigDecimal(4743),  b2 = new BigDecimal("4743.00");
        b1.compareTo(b2)
Output : 0

Los siguientes programas ilustran el funcionamiento de la función compareTo() de la clase BigDecimal:
Programa 1: Para una condición mayor que:

// Java program to demonstrate compareTo() method
  
import java.io.*;
import java.math.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Creating 2 BigDecimal objects
        BigDecimal b1, b2;
  
        b1 = new BigDecimal(67891);
        b2 = new BigDecimal(12346);
  
        if (b1.compareTo(b2) == 0) {
            System.out.println(b1 + " and " + b2 + " are equal.");
        }
        else if (b1.compareTo(b2) == 1) {
            System.out.println(b1 + " is greater than " + b2 + ".");
        }
        else {
            System.out.println(b1 + " is lesser than " + b2 + ".");
        }
    }
}
Producción:

67891 is greater than 12346.

Programa 2: Para igual condición:

// Java program to demonstrate compareTo() method
  
import java.io.*;
import java.math.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Creating 2 BigDecimal objects
        BigDecimal b1, b2;
  
        b1 = new BigDecimal(67891);
        b2 = new BigDecimal("67891.000");
  
        if (b1.compareTo(b2) == 0) {
            System.out.println(b1 + " and " + b2 + " are equal.");
        }
        else if (b1.compareTo(b2) == 1) {
            System.out.println(b1 + " is greater than " + b2 + ".");
        }
        else {
            System.out.println(b1 + " is lesser than " + b2 + ".");
        }
    }
}
Producción:

67891 and 67891.000 are equal.

Programa 3: Para condiciones inferiores a:

// Java program to demonstrate compareTo() method
  
import java.io.*;
import java.math.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Creating 2 BigDecimal objects
        BigDecimal b1, b2;
  
        b1 = new BigDecimal("4743.00001");
        b2 = new BigDecimal("4743.0008");
  
        if (b1.compareTo(b2) == 0) {
            System.out.println(b1 + " and " + b2 + " are equal.");
        }
        else if (b1.compareTo(b2) == 1) {
            System.out.println(b1 + " is greater than " + b2 + ".");
        }
        else {
            System.out.println(b1 + " is lesser than " + b2 + ".");
        }
    }
}
Producción:

4743.00001 is lesser than 4743.0008.

Referencia: https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#compareTo(java.math.BigDecimal)

Publicación traducida automáticamente

Artículo escrito por RICHIK BHATTACHARJEE y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *