判断两个(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
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
相关文章推荐
- java工程师最新面试题(线程部分)
- 8款流行前沿的HTML5文本编辑器
- 字符串
- 20145218 《Java程序设计》第四周学习总结
- JS实现滚动监听以及滑动到顶部
- struts的DevMode模式问题
- 调试angularjs chrome 插件 Batarang安装和使用
- 用C语言实现大小端判断
- 微服务(Microservices)—Martin Flower【翻译】【转载】
- git 使用记录
- XAudio2采样率转换
- Java Vector 类
- Xp系统下查看计算机所有程序的方法
- mongodb技巧总结
- 大整数相乘(包含小数)
- Bootstrap 粘页脚,你必须得学会的简单技能
- 工厂方法模式--要车,轮子你得帮我装!
- hdu 1421(dp)
- Bootstrap 粘页脚
- J2EE MyBatis使用