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)。