Maison  >  Article  >  Java  >  Comment BigDecimal compare la taille

Comment BigDecimal compare la taille

DDD
DDDoriginal
2023-12-06 13:44:584554parcourir

Méthodes pour comparer les tailles : 1. Utilisez la méthode "compareTo()" ; 2. Utilisez la méthode "equals()" ; 3. Utilisez la version surchargée de la méthode "compareTo()" ; ()" Méthode Appels en chaîne, etc.

BigDecimal est une classe en Java utilisée pour gérer des opérations en virgule flottante de haute précision. Lors des comparaisons, BigDecimal fournit des méthodes pour comparer les tailles de deux objets. Voici plusieurs méthodes pour comparer les tailles des objets BigDecimal :

1. Utilisez la méthode compareTo() :

compareTo() renvoie une valeur entière indiquant la relation de taille entre deux objets BigDecimal. Si la valeur de retour est négative, cela signifie que le premier objet est plus petit que le deuxième objet ; si la valeur de retour est nulle, les deux objets sont égaux ; si la valeur de retour est positive, cela signifie que le premier objet est plus grand que le deuxième objet ; .

Exemple de code :

import java.math.BigDecimal;  
  
public class BigDecimalComparison {  
    public static void main(String[] args) {  
        BigDecimal number1 = new BigDecimal("10.5");  
        BigDecimal number2 = new BigDecimal("20.5");  
          
        int result = number1.compareTo(number2);  
          
        if (result < 0) {  
            System.out.println("number1 < number2");  
        } else if (result > 0) {  
            System.out.println("number1 > number2");  
        } else {  
            System.out.println("number1 = number2");  
        }  
    }  
}

Résultat de sortie :

number1 < number2

2. Utilisez la méthode equals() : La méthode

equals() est utilisée pour comparer si deux objets BigDecimal sont égaux. Il compare si la valeur numérique et l'échelle (nombre de chiffres après la virgule) de deux objets sont égales. Si égal, renvoie vrai ; sinon, renvoie faux.

Exemple de code :

import java.math.BigDecimal;  
  
public class BigDecimalComparison {  
    public static void main(String[] args) {  
        BigDecimal number1 = new BigDecimal("10.5");  
        BigDecimal number2 = new BigDecimal("10.50");  
          
        boolean isEqual = number1.equals(number2);  
          
        if (isEqual) {  
            System.out.println("number1 = number2");  
        } else {  
            System.out.println("number1 != number2");  
        }  
    }  
}

Résultat de sortie :

number1 != number2

Remarque : lors de la comparaison d'objets BigDecimal à l'aide de la méthode equals(), le paramètre d'échelle, qui est le nombre de chiffres après la virgule décimale, sera pris en compte. Par conséquent, vous devez faire attention au réglage de l’échelle lors de la comparaison.

3. Utilisez la version surchargée de la méthode compareTo() :

la méthodecompareTo() a également une version surchargée qui peut être utilisée pour comparer la taille relative de deux objets BigDecimal avec un objet spécifié. La valeur de retour de cette version surchargée est la même que la valeur de retour de la méthode compareTo(). Grâce à cette méthode, nous pouvons comparer la relation de taille entre deux objets et un objet spécifié.

Exemple de code :

import java.math.BigDecimal;  
  
public class BigDecimalComparison {  
    public static void main(String[] args) {  
        BigDecimal number1 = new BigDecimal("10.5");  
        BigDecimal number2 = new BigDecimal("20.5");  
        BigDecimal number3 = new BigDecimal("15.5");  
          
        int result = number1.compareTo(number2).compareTo(number3);  
          
        if (result < 0) {  
            System.out.println("number1 < number2 < number3");  
        } else if (result == 0) {  
            System.out.println("number1 = number2 = number3");  
        } else {  
            System.out.println("number1 > number2 > number3");  
        }  
    }  
}

Dans cet exemple, nous comparons d'abord la relation de taille entre le numéro1 et le numéro2, puis passons le résultat à la méthode compareTo(), puis comparons la relation de taille entre le résultat et le numéro3. Le résultat final est un nombre négatif, indiquant que le nombre1 est inférieur au nombre2 et que le nombre2 est supérieur au nombre3, donc "numéro1 3f7701e08b55e002de14862450f620ce numéro3" peut être généré.

4. Utilisez des appels chaînés de la méthode compareTo() :

la méthodecompareTo() peut également être chaînée pour effectuer plusieurs comparaisons en une seule opération. Grâce aux appels en chaîne, nous pouvons comparer la relation de taille entre deux objets et plusieurs objets.

Exemple de code :

import java.math.BigDecimal;  
  
public class BigDecimalComparison {  
    public static void main(String[] args) {  
        BigDecimal number1 = new BigDecimal("10.5");  
        BigDecimal number2 = new BigDecimal("20.5");  
        BigDecimal number3 = new BigDecimal("15.5");  
          
        int result = number1.compareTo(number2).compareTo(number3);  
          
        if (result < 0) {  
            System.out.println("number1 < number2 < number3");  
        } else if (result == 0) {  
            System.out.println("number1 = number2 = number3");  
        } else {  
            System.out.println("number1 > number2 > number3");  
        }  
    }  
}

Résultat de sortie :

number1 < number2 > number3

Dans cet exemple, nous utilisons des appels en chaîne pour comparer la relation de taille de trois objets. Comparez d'abord le numéro 1 et le numéro 2, puis comparez le numéro 2 et le numéro 3, et enfin obtenez le résultat complet de la comparaison.

En bref, la classe BigDecimal fournit une variété de méthodes pour comparer les tailles. Nous pouvons choisir la méthode appropriée pour gérer différentes situations en fonction de besoins spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn