a=0.333,b=0.333,
if(a==b)
{
}
能这样用吗?看起来没问题,其实问题很大。
浮点数和double型数在计算机中并不能精确存储,所以看似相等,但是在计算机中存储的二进制不一定相等,所以浮点数的比较是否相等,一般是让两个浮点数相减求绝对值,绝对值在某个范围内就认为相等,至于之歌范围是多大也是自己决定的,还有一种办法,浮点数乘整数倍数,然后转化为整型,再去做比较,函数如下:
u8 FloatEqual(float f1,float f2)
{
u8 res = 0;
int a,b;
a = f1*1000;
b = f2*1000;
if(a==b)
res = 1;
return res;
}