【C++】 判断浮点型变量是否为0

浮点型判断是否0值,只能判断其绝对值在某个精度范围内进行判断,不能直接 == 0.0来进行。

正确做法:

先定义一个精度范围,当double小于该精度范围时判定double变量是否为0。可以使用fabs()求绝对值和float.h头文件中的DBL_EPSILON进行判断:
image

DBL_EPSILON是最小误差。 是DBL_EPSILON+X不等于X的最小的正数

点击查看代码
    double b = sin(M_PI / 6.0);

    if (fabs(b - 0.5) < DBL_EPSILON) //可能正确也可能错误,和编译器有关
    {
        cout << "This is correct method";
    }

    if ((b - 0.5) == 0.0)
    {
        cout << "This is wrong method";
    }

image

posted @ 2022-07-26 00:14  hawk_97  阅读(2071)  评论(0)    收藏  举报