3451|2

41

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

两个float 型相等判断? [复制链接]

一般情况下,float型数据和int型数据是不能直接相等判断的,需要一个微差值。但是在某些特殊情况下,我需要做这样的判断,。
例如:
#define  INVALID_DATA  19999
float val;//只能是float
void fun(void)
{
       if(条件)
      {
            val = INVALID_DATA ;
       }

       if(INVALID_DATA  == val)
       {
           val=0;
        }
       else
       {
           val = val - 50;
       }

}
我从单片机上仿真,条件成立成,val输出为0,但总觉的这不规范,有没有什么好的方法,写的简明清楚,风格也Ok的。
此帖出自stm32/stm8论坛

最新回复

//不知道你要实现什么功能 //如果单从已知的条件来看INVALID_DATA可以省掉(也许并不是你的本意) //代码可以这样写 void fun(void) {     if(条件成立)     {           val = 0;     }     else     {         val -= 50;      } }  详情 回复 发表于 2016-11-3 20:35
点赞 关注
 

回复
举报

9792

帖子

24

TA的资源

版主

沙发
 

//不知道你要实现什么功能

//如果单从已知的条件来看INVALID_DATA可以省掉(也许并不是你的本意)

//代码可以这样写

void fun(void)

{

    if(条件成立)

    {  

        val = 0;

    }

    else

    {

        val -= 50; 

    }

}

此帖出自stm32/stm8论坛
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 

回复

41

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
if(条件)
{
      val = INVALID_DATA ;
}
因为有时if(条件) 中的条件乱七八糟,也可能在其它函数中生成的,
而if(INVALID_DATA  == val)
       {
           val=0;
        }
       else
       {
           val = val - 50;
       }
只会只有一个。
此帖出自stm32/stm8论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表