在JAVA中怎么比较Double类型数据的大小
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在JAVA中怎么比较Double类型数据的大小相关的知识,希望对你有一定的参考价值。
Double是一个包装类,不是基本类型,和double是有区别,你可以把Double就看成一个普通的类型,所以类型在比较时都应该用 equals
两个对象通过==比都是不一样的,所以对象应该用equals比
参考技术ADouble类型的变量可以使用compareTo()方法比较大小,比如:
public class DoubleDemopublic static void main(String[] args)
// compares two Double objects numerically
Double obj1 = new Double("8.5");
Double obj2 = new Double("11.50");
int retval = obj1.compareTo(obj2);
if(retval > 0)
System.out.println("obj1 is greater than obj2");
else if(retval < 0)
System.out.println("obj1 is less than obj2");
else
System.out.println("obj1 is equal to obj2");
参考技术B 使用java.lang.Double.compareTo()方法
例:
Double obj1 = new Double("8.5");
Double obj2 = new Double("11.50");
int retval = obj1.compareTo(obj2);
if(retval > 0)
System.out.println("obj1 is greater than obj2");
else if(retval < 0)
System.out.println("obj1 is less than obj2");
else
System.out.println("obj1 is equal to obj2");
本回答被提问者采纳
double类型大小比较的方法
问题
在Java中,int类型数据的大小比较可以使用双等号,double类型则不能使用双等号比较大小,那若使用double类型时怎么进行比较呢?
方法
-
转换为字符串
如果要比较的两个double数据的字符串精度相等,可以将数据转换成string然后借助string的equals方法来间接实现比较两个double数据是否相等。
代码运行结果如下:
(2)使用doubleToLongBits()方法
该方法可以将double转换成long型数据,从而可以使double按照long的方法(<, >, ==)判断是否大小和是否相等。
代码运行结果如下:
(3)在误差范围内运行相等
两实数的差在允许范围内认为相等即可认为是相等的。代码中的0.0000001指范围(1e-6)
代码运行结果如下:
结语
针对如何在double类型时比较大小的问题,此处我们提供了三种解法,分别为先将它们转换类型变为字符串类型再进行比较,第二种是使用doubleToLongBits()方法,第三种最为简单,则是使其差值在误差范围内则两个值相等。注意第一种转换为字符串类型的方法只适用于比较精度相同的数据,并且只用于两者是否相等的情况下。
以上是关于在JAVA中怎么比较Double类型数据的大小的主要内容,如果未能解决你的问题,请参考以下文章