Java BigDecimal compareTo()函数

Java BigDecimal compareTo()函数

java.math.BigDecimal.compareTo(BigDecimal bg) 方法检查这个BigDecimal和作为参数的BigDecimal对象 bg 是否相等。该方法认为两个相等的BigDecimal对象,即使它们的数值相等,也不考虑比例。

语法

public int compareTo(BigDecimal bg)

参数: 本函数只接受一个BigDecimal类型的BigDecimal对象与本BigDecimal对象进行比较。

返回值: 该方法可以返回以下值。

  • 0 : 如果这个BigDecimal对象的值和作为参数传递的BigDecimal对象的值相等。
  • 1 : 如果这个BigDecimal的值大于作为参数传递的BigDecimal对象的值。
  • -1 : 如果这个BigDecimal的值小于作为参数传递的BigDecimal对象的值。

注意: 该函数在比较124.0和124.0000时返回true,因为它没有比较两个BigDecimal对象的比例。

例子

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

下面的程序说明了BigDecimal类的compareTo()函数的工作情况:
程序1: 对于大于条件。

// 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 + ".");
        }
    }
}

输出。

67891 is greater than 12346.

方案2: 对于同等条件。

// 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 + ".");
        }
    }
}

输出。

67891 and 67891.000 are equal.

方案3: 对于低于条件的。

// 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 + ".");
        }
    }
}

输出。

4743.00001 is lesser than 4743.0008.

参考资料: https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#compareTo(java.math.BigDecimal)。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程