在JAVA中怎么比较Double类型数据的大小
发布网友
发布时间:2022-04-28 16:30
我来回答
共3个回答
热心网友
时间:2022-06-19 17:27
你如果是要普通比较直接用数学符号即可,指的在其jvm允许的范围内如果,你是要很准确的精度比较运算,由于精度问题,可能会有误差,建议使用BigDecimal类型!
//普通比较
Double obj1 = new Double("0.001");
Double obj2 = new Double("0.0011");
obj1.compareTo(obj2);
//精度准确比较
double a=obj1;
double b=obj2;
BigDecimal data1 = new BigDecimal(a);
BigDecimal data2 = new BigDecimal(b);
data1.compareTo(data2);
//该方法两种类都有
public int compareTo(BigDecimal val)
/*将此 BigDecimal 与指定的 BigDecimal 比较。根据此方法,值相等但具有不同标度的两个 BigDecimal对象(如,2.0 和 2.00)被认为是相等的。相对六个 boolean 比较运算符 (<, ==, >, >=, !=, <=) 中每一个运算符的各个方法,优先提供此方法。
*参数:val - 将此 BigDecimal 与之比较的 BigDecimal。
*返回:当此 BigDecimal 在数字上小于、等于或大于 val 时,返回 -1、0 或 1。
*/
热心网友
时间:2022-06-19 17:27
几乎所有数字类型的,同类型的,可以直接比较
如 a , b 两个比较
类似如下:
if(a>b){
}
不同类型,一般按照大的那个类型来比较
海枫科技
热心网友
时间:2022-06-19 17:28
public static void main(String[] args) {
Double d1 = 1.1D;
Double d2 = 2.2D;
System.out.println(d1.doubleValue() > d2.doubleValue());
}