[thinking]C语言flaot值比较

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

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()针对整型。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值