fabs(a)<=EPS 是什么意思?

TTTjun 2012-10-20 07:02:49
书上第一次出现 就说测试0 也不说是啥
...全文
6410 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pw2156314 2012-10-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
EPS是个很小的数,如1e-6,因为浮点数在内存中的表示是不精确的,会有很微小的误差,所以判断是否为0,就看它的绝对值是不是<=EPS
[/Quote]
增长见识了!~
startservice 2012-10-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

IEEE754标准中,单精度浮点数(4byte)表示法:1bit符号位(S),8bit指数位(E,用阶码表示),23bit小数部分(尾数M)。双精度浮点数(8byte)表示法:1bit符号位,11bit指数位(用阶码表示),52bit小数部分(尾数)。所以一个规格化的单精度浮点数x的真值为x=((-1)^S)*(1.M)*(2^(E-127));显然,x永远也不可能为绝对0。
[/Quote]
+
mujiok2003 2012-10-20
  • 打赏
  • 举报
回复
1-3楼都说了
JWMNEU 2012-10-20
  • 打赏
  • 举报
回复
所以要比较一个浮点数是否等于零就得用这个方法,EPS是定义的一个非常小的数,比如1e-6。
xiaoxiao8310 2012-10-20
  • 打赏
  • 举报
回复
EPS是个很小的数,如1e-6,因为浮点数在内存中的表示是不精确的,会有很微小的误差,所以判断是否为0,就看它的绝对值是不是<=EPS
JWMNEU 2012-10-20
  • 打赏
  • 举报
回复
IEEE754标准中,单精度浮点数(4byte)表示法:1bit符号位(S),8bit指数位(E,用阶码表示),23bit小数部分(尾数M)。双精度浮点数(8byte)表示法:1bit符号位,11bit指数位(用阶码表示),52bit小数部分(尾数)。所以一个规格化的单精度浮点数x的真值为x=((-1)^S)*(1.M)*(2^(E-127));显然,x永远也不可能为绝对0。

69,322

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧