小白写代码时遇到bigdecimal啊,double啊这种类型的数据比较的时候几乎是一脸懵逼的,去网上各种搜,今天给大家介绍个java里顶级的比较器,学会它,一招鲜,吃遍天。
compareTo() 方法
语法:public int compareTo( NumberSubClass referenceName )
参数:referenceName – 可以是一个 Byte, Double, Integer, Float, Long 或 Short 类型的参数。
返回值:
如果指定的数与参数相等返回0。
如果指定的数小于参数返回 -1。
如果指定的数大于参数返回 1。
上几个示例:
int型比较
public class Test{
public static void main(String args[]){
Integer x = 0;
System.out.println(x.compareTo(-5));
System.out.println(x.compareTo(0));
System.out.println(x.compareTo(9));
}
}
编译以上程序,输出结果为:
1
0
-1
double型比较
public class Test{
public static void main(String args[]){
Double x = 0.0;
System.out.println(x.compareTo(-5));
System.out.println(x.compareTo(0));
System.out.println(x.compareTo(9));
}
}
编译以上程序,输出结果为:
1
0
-1
bigdecimal型比较,这边做个和0比较判断是不是负数吧
public class Test{
public static void main(String args[]){
BigDecimal bigDecimal = 10.5;
int r = bigDecimal.compareTo(BigDecimal.ZERO);
if(r == -1){
return "是负数";
}
if(r == 0){
return "就是0";
}
if(r == 1){
return "是正数";
}
}
}