[thinking]C语言flaot值比较

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/localhostcom/article/details/83211890

最近面试,发现很多基础的原理都还没搞懂。自己平时没有应用或接触到的知识,也不会想着去学习。但遇到的更多,自己就会去探索的更多

1.int型比较

a == b;//( != ,<,>,<=,>=)

2.bool型比较

a == true;//false

3.指针比较

a. if(a == NULL);
b. if(a != NULL);
c. str或mem系列函数;(memcmp,strcmp......)

4.float型比较

自己想到2种实现的方法:

4.1 设定一个值与两个float型的差的绝对值作比较,当小于或等于这个值的时候,就认为是相等的;

4.2 放大法,通过放大float的值再强制转换成int型作比较;

//1.设定一个精确值,通过两个float值相减取它们的绝对值,再和这个精确值比较
int compareFloat()
{
        const float ep = 0.00001;

        float a = 1.00189;
        float b = 1.00187;

        if(fabs(a-b) <= ep) 
        {
                printf("equal\n");
        }
        else
                printf("no equal!\n");

        return 0;
}

简单的说明下:fabs()针对浮点数,abs()针对整型。

猜你喜欢

转载自blog.csdn.net/localhostcom/article/details/83211890
今日推荐