51uwb.cn

标题: 代码中做除法避免除0 [打印本页]

作者: tuzhuke    时间: 2018-11-30 08:08
标题: 代码中做除法避免除0

为了管理方便,论坛是邀请制,如果需要注册论坛,点击论坛上方的“店铺”,旺旺联系免费获得邀请码


下面的代码,求多次测量的均值(中间除以1000 是将mm转换成m)
  1. sprintf(dist_str, "an2:%3.2fm", (float)Anthordistance[2]/1000/Anthordistance_count[2]);
  2.         OLED_ShowString(0, 6,"                 ");
  3.         OLED_ShowString(0, 6,dist_str);
复制代码
但是可能遇到的问题是,有个anthor 根本没有回复数据,那么Anthordistance_count[2] 可能是0,今天检查代码发现这个问题,之前程序竟然没有hang


下面才是正确做法,加一个判断
  1. if(Anthordistance_count[1]>0)
  2.     {
  3.         sprintf(dist_str, "an1:%3.2fm", (float)Anthordistance[1]/1000/Anthordistance_count[1]);
  4.         OLED_ShowString(0, 4,"                 ");
  5.         OLED_ShowString(0, 4,dist_str);
  6.     }
复制代码







欢迎光临 51uwb.cn (http://51uwb.cn/) Powered by Discuz! X3.3