CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

浮点数比较的问题

楼主leiming()2005-08-02 23:54:45 在 VC/MFC / 基础类 提问

浮点数好象不能用(==)   和(!=)比较。  
  那怎么判断两个浮点数是否相等?怎么判断一个浮点数是否等于0? 问题点数:60、回复次数:9Top

1 楼humourHM(小鬼)回复于 2005-08-03 00:03:35 得分 0

可以判断相减结果是否为0啊Top

2 楼i_noname(晚九朝五)回复于 2005-08-03 00:38:26 得分 0

判断浮点数最好不要用=来判断,用下面的方法。  
  double   a,   b;  
  ...  
  if   (a   -   b   >=   0.0000001)     //看你的精度要求了  
        ...;  
  看是否为0也是用  
  if   (a   <=   0.00000001)Top

3 楼thisisll(学习王高李,有个好身体)回复于 2005-08-03 08:18:59 得分 0

学习Top

4 楼ricky20045(热情的沙漠)回复于 2005-08-03 08:22:33 得分 0

顶一下Top

5 楼RedProgramer(TST : RedSteel)回复于 2005-08-03 08:29:21 得分 0

因为浮点数很少会有绝对的零出现,所以应该用i_noname(一觉睡到大天黑)   的方法Top

6 楼happyparrot(快乐鹦鹉)回复于 2005-08-03 08:29:49 得分 0

判断是否为0,可以用:  
  float   a;  
  if(abs(a)   <   0.0000001)  
  {  
      AfxMessageBox("a=0");  
  }Top

7 楼happyparrot(快乐鹦鹉)回复于 2005-08-03 08:30:42 得分 0

因该用浮点数的绝对值无限接近0的原则来判断是否为0,不能仅用浮点数Top

8 楼younggle(洋溢)回复于 2005-08-03 08:55:11 得分 0

正如楼主所说,浮点数是不能使用   ==   和   !=   直接进行比较的。  
  而是要使用‘逼近法’进行比较的。  
   
  判断a是否为0,可以用:  
  const   float   MIN_ERROR   =   0.0000001;  
  float   a;  
  ......  
  if(fabs(a)   <   MIN_ERROR)  
  {  
      //a   近似等于   0  
  }  
   
  Top

9 楼qrlvls( 空 气 )回复于 2005-08-03 09:00:08 得分 0

浮点数表示法的限制,这种方法在浮点数经过运算后不一定准确  
  根据浮点数的表示方法,你只需要为一个浮点数赋值  
  float   f   =   0.0f;  
  if   (memcmp((void*)&fDest,   (void*)&f,   4)   ==   0)  
        printf("相等");  
  else  
        printf("不相等");  
   
  对于   double,只需要把   4   换成   8   就可以了  
  如果用到了   IEEE   80位   浮点数表示法的话就比较麻烦了  
  Top

相关问题

  • 比较浮点数的大小? ----请教
  • 浮点数与零怎么比较啊??
  • 浮点数怎样比较大小?
  • 如何比较两个 float 浮点数?
  • 关于浮点数的比较问题
  • 浮点数相加
  • 关于浮点数
  • C里面浮点数和整数怎么比较?
  • C语言中浮点数比较的问题
  • 如何比较两个浮点数相等呢?

关键词

  • 浮点数
  • 判断
  • 是否

得分解答快速导航

  • 帖主:leiming

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo