两个float值比较大小

3140阅读 0评论2014-01-21 dongliyun
分类:Windows平台

如果程序中要求比较两个float值是否相等,你会怎样写呢?

float a;

float b;

if(a == b)

{

...

}

这样写对吗?

其实这样写不对,为什么呢?原因是float型在计算机中存储中只能取近似值,有精度的限制。那么正确的做法是什么呢?

定义一个允许的最小误差,比如:

#define  Espinon  0.000001

那么比较a和b是否相等:

if(fabs(a-b)

另外补充说明,向float和double型的数据一般不用 ==和!=符号,一般使用>,>=,<,<=

那么比较一个float型是否为零就要这样写:if(a <= Espinon && a >= Espinon ).

上一篇: 硬盘基本知识
下一篇:冯诺依曼体系结构和哈佛体系结构