编程语言
首页 > 编程语言> > 【C++】 判断浮点型变量是否为0

【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

标签:判断,DBL,fabs,double,C++,浮点,EPSILON,精度,变量
来源: https://www.cnblogs.com/hawk97/p/16519357.html