关于浮点数与0比较?

jellodgd 2006-12-01 04:28:52
【规则4-3-3】不可将浮点变量用“==”或“!=”与任何数字比较。

c/c++高质量编程里面的话.为什么一定要用if ((x>=-EPSINON) && (x<=EPSINON))
而不能用if (x == 0.0)呢?
...全文
764 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
FFSB 2006-12-01
  • 打赏
  • 举报
回复
每年都有那么几次...
boxer_tony 2006-12-01
  • 打赏
  • 举报
回复
这是因为浮点数表达的不精确性造成的,即使和0比较也是不能用==或者!=的。
比如1,由于计算误差,最后的结果可能是0.999999999999999999.....或者1.000000000000000000001...它们与1用==比较就会不等了。
chai2010 2006-12-01
  • 打赏
  • 举报
回复
浮点变量有精度范围,即小数点后几位,
和0比较没有问题,精度可以达到
king820802 2006-12-01
  • 打赏
  • 举报
回复
和0应该没有问题吧?但是和别的比较,一般都会有问题的

69,369

社区成员

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

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