您的位置:首页 > 其它

判断两个(float)变量x,z是否相等 以及和0值比较方法

2016-03-26 15:34 579 查看
浮点数的表示是不精确的,不能直接比较两个数是否完全相等,一般都是在允许的某个范围内认为像个浮点数相等,如有两个浮点数a,b,允许的误差范 围为1e-6,则abs(a-b)<=1e-6,即可认为a和b相等。还有一种方法就是扩大再取整,比如a=5.23,b=5.23,直接比较 a==b一般为false,但是a和b都扩大一百倍,然后强制转换为int类型,再用==比较就可以了

float型变量和“零值”比较的方法:

const float EPSINON = 0.000001;

if ((x >= - EPSINON) && (x <= EPSINON))

浮点型变量并不精确,其中EPSINON是允许的误差(即精度),所以不可将float变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。如果写成if (x == 0.0),则是错误的。

因为1.0在计算机中可能存为0.999999或1.00001等,很难恰好是1.0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: