请教 这句c语言关于&&逻辑计算有错误吗

2020-01-01 17:50发布

if(( Warning_Collect_temper/10 <= Warning_High_temper-Warning_Htemper_Hys)&&( Warning_Htemper_run==1))

这个语句有错吗
Warning_Collect_temper/10的运算结果是24.5
Warning_High_temper-Warning_Htemper_Hys运算结果是24
24.5 <= 24 这个条件不成了啊,怎么就进入条件之后的语句了呢
各位大神哪里出错了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
diyeyuye
1楼-- · 2020-01-02 10:10
多加括号啊,保证运算符的优先级不会出问题
Gallen.Zhang
2楼-- · 2020-01-02 15:45
Warning_Collect_temper是什么类型,如果是整形的话,245/10=24,条件为真,当然会执行
foxpro2005
3楼-- · 2020-01-02 17:20
(float)Warning_Collect_temper/10
e1ki0lp
4楼-- · 2020-01-02 19:27
本帖最后由 e1ki0lp 于 2016-7-29 21:30 编辑

我的建议是不要在单片机里用浮点

可以这样
if(( Warning_Collect_temper<= ((Warning_High_temper-Warning_Htemper_Hys)*10 ))&&( Warning_Htemper_run==1))

不过需要注意要保证 ((Warning_High_temper-Warning_Htemper_Hys)*10 )之后不会溢出.
jiangzhimin
5楼-- · 2020-01-03 00:53
 精彩回答 2  元偷偷看……
security
6楼-- · 2020-01-03 02:56
上面一些坛友说过 要加括号,我这边也跟 LZ 说一下:
1、单看 LZ 的代码风格,还处于暴力原始的阶段,你可以去看 《高质量 c/c++ 编程指南》,或者 屁眼公司的编程规范
2、括号优先级的问题,要注意添加,不要靠记忆蛮力,举个例子,你认为下面表达式的值是多少呢?
  1. 1 << 4 + 1
复制代码不加括号的话,你能确保所有人都算对吗?

一周热门 更多>