Java中double类型比较大小或相等的方法
2017-05-02 22:37
337 查看
在Java中int类型数据的大小比较可以使用双等号,double类型则不能使用双等号来比较大小,如果使用的话得到的结果将永远是不相等,即使两者的精度是相同的也不可以。下面介绍两种比较double数据是否相等的方法。
第一种方法:转换成字符串
如果要比较的两个double数据的字符串精度相等,可以将数据转换成string然后借助string的equals方法来间接实现比较两个double数据是否相等。注意这种方法只适用于比较精度相同的数据,并且是只用用于比较是否相等的情况下,不能用来判断大小。
第二种方法:使用sun提供的Double.doubleToLongBits()方法
该方法可以将double转换成long型数据,从而可以使double按照long的方法(<, >, ==)判断是否大小和是否相等。
例如:
Double.doubleToLongBits(0.01) == Double.doubleToLongBits(0.01)
Double.doubleToLongBits(0.02) > Double.doubleToLongBits(0.01)
Double.doubleToLongBits(0.02) < Double.doubleToLongBits(0.01)
第一种方法:转换成字符串
如果要比较的两个double数据的字符串精度相等,可以将数据转换成string然后借助string的equals方法来间接实现比较两个double数据是否相等。注意这种方法只适用于比较精度相同的数据,并且是只用用于比较是否相等的情况下,不能用来判断大小。
第二种方法:使用sun提供的Double.doubleToLongBits()方法
该方法可以将double转换成long型数据,从而可以使double按照long的方法(<, >, ==)判断是否大小和是否相等。
例如:
Double.doubleToLongBits(0.01) == Double.doubleToLongBits(0.01)
Double.doubleToLongBits(0.02) > Double.doubleToLongBits(0.01)
Double.doubleToLongBits(0.02) < Double.doubleToLongBits(0.01)
相关文章推荐
- Java中double类型比较大小或相等的方法
- JAVA double类型比较大小
- java中比较两个double类型的数据大小
- 在JAVA中怎么比较Double类型数据的大小?
- BigDecimal 01 - 在JAVA中怎么比较Double类型数据的大小?
- 在JAVA中怎么比较Double类型数据的大小?
- [疯狂Java]面向对象:基本类型的包装器类型、自动装箱/拆箱、包装器类型大小/相等比较
- 关于java中double类型的比较大小的问题
- JAVA DATE类型数据比较判断大小方法
- 深入理解C++浮点数(float、double)类型数据比较、相等判断
- Java中字符串相等与大小比较
- Java String compare to determine Equality(Java String类型比较的三种方法)
- java数据类型(大小等),变量定义,各进制书写方法
- java字符串比较大小compareTo方法
- 在java的程序里date类型比较大小
- 深入java的equals方法,怎么比较两个对象的内容是否相等?对象的内容指的是什么?
- java中的String 类型易错点总结(相等比较和传值问题)
- float和double类型的内存分布和比较方法
- java 自定义类型比较大小
- float和double类型的内存分布和比较方法