版权声明:本文为博主原创文章,未经博主允许不得转载。 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()针对整型。