【C 语言基础】double类型大小比较的方法——以Java为例

发布时间 2023-11-14 14:04:39作者: FBshark

问题

在Java中,int类型数据的大小比较可以使用双等号,double类型则不能使用双等号比较大小(0,0 == 0.0 是不可以的),那若使用double类型时怎么进行比较呢?

 

方法

(1)转换为字符串

如果要比较的两个double数据的字符串精度相等,可以将数据转换成string然后借助string的equals方法来间接实现比较两个double数据是否相等。

(2)使用doubleToLongBits()方法

该方法可以将double转换成long型数据,从而可以使double按照long的方法(<, >, ==)判断是否大小和是否相等。

(3)在误差范围内运行相等

两实数的差在允许范围内认为相等即可认为是相等的。代码中的0.000001指范围(1e-6)

bool equal(double num1,double num2)
{
    if((num1-num2>-0.000001)&&(num1-num2)<0.000001)
        return true;
        else return false;
}

 

 

参考文章:https://mp.weixin.qq.com/s?__biz=MzI5MTQ5NDY1MA==&mid=2247499866&idx=1&sn=d173555a714b06d103a0cb9c429afefc&chksm=ec0d4fcfdb7ac6d9ea83cbe6aae79344423d2fa13a2501fc23ca14cfe797acb345acc59b4e45&scene=27