首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于float跟零值的比较

2012-09-23 
关于float和零值的比较最近在准备找工作,无意中发现了对float型数据和零值的比较,写法如下:1const float

关于float和零值的比较
最近在准备找工作,无意中发现了对float型数据和零值的比较,写法如下:1>
const float EPSINON = 0.000001; 
if ((x >= - EPSINON) && (x <= EPSINON)
2>
const float EPSINON = 0.00001; 
if ((x >= - EPSINON) && (x <= EPSINON)
对于这两种写法,不知哪一种是对的,我的分析如下:因为float的有效精度为小数点后6位,我认为写法1>正确,但是在林锐博士的写的高质量c++编程中是用的方法2>请大侠指点。

[解决办法]
这取决于程序员对数据精度的要求.
[解决办法]
楼主你弄错了一个基本概念
float的精度不是“小数点后6位”,而是“6位有效数字”
假如使用float计算两个10的-9次方左右的数,或者是两个10的9次方左右的数的运算,不管是1还是2都会失效

所以,用于0值判断的这个“极小数”,是跟你所使用的数据的范围相关的

热点排行