Home  >  Article  >  Java  >  How BigDecimal compares size

How BigDecimal compares size

DDD
DDDOriginal
2023-12-06 13:44:584553browse

Methods to compare sizes: 1. Use the "compareTo()" method; 2. Use the "equals()" method; 3. Use the overloaded version of the "compareTo()" method; 4. Use the "compareTo ()" method chain calls, etc.

BigDecimal is a class in Java used to handle high-precision floating point operations. When making comparisons, BigDecimal provides methods to compare the sizes of two objects. The following are several ways to compare the sizes of BigDecimal objects:

1. Use the compareTo() method:

The compareTo() method returns an integer value representing two BigDecimals Object size relationship. If the return value is negative, it means the first object is smaller than the second object; if the return value is zero, the two objects are equal; if the return value is positive, it means the first object is larger than the second object.

Sample 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");  
        }  
    }  
}

Output result:

number1 < number2

2. Use equals() method:

equals() method is used to compare whether two BigDecimal objects are equal. It compares whether the numerical value and scale (number of digits after the decimal point) of two objects are equal. If equal, returns true; otherwise, returns false.

Sample 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");  
        }  
    }  
}

Output result:

number1 != number2

Note: When using the equals() method to compare BigDecimal objects, the scale parameter will be considered, that is The number of digits after the decimal point. Therefore, you need to pay attention to the scale setting when comparing.

3. Use the overloaded version of the compareTo() method:

The compareTo() method also has an overloaded version that can be used to compare two BigDecimal objects with The relative size of a specified object. The return value of this overloaded version is the same as the return value of the compareTo() method. Through this method, we can compare the size relationship between two objects and a specified object.

Sample 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");  
        }  
    }  
}

In this example, we first compare the size relationship between number1 and number2, then pass the result to the compareTo() method, and then compare This result is related to the size of number3. The final result is a negative number, indicating that number1 is less than number2, and number2 is greater than number3, so "number1 620186932d5b5d1a095ec7dbe69388e0 number3" can be output.

4. Use chained calls of the compareTo() method:

The compareTo() method can also be chained to perform multiple comparisons in one operation. . Through chain calls, we can compare the size relationship between two objects and multiple objects.

Sample 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");  
        }  
    }  
}

Output result:

number1 < number2 > number3

In this example, we use chain calls to compare the size relationship of three objects . First compare number1 and number2, then compare number2 and number3, and finally get the complete comparison result.

In short, the BigDecimal class provides a variety of methods to compare sizes. We can choose the appropriate method to handle different situations according to specific needs.

The above is the detailed content of How BigDecimal compares size. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn