零大于或等于零的计算结果为false

时间:2017-03-01 09:11:25

标签: c relational-operators

(SELECT MAX(`id`) FROM`task_activity_log` A1 WHERE A1.`task_id`=TA.`task_id`) AS `max_id`

这会返回false。

我根本不明白这一点。 Watch window当我单独测试时,我还尝试将语句读为i = 0; if(0 <= i <= 0) (0 <= i && i <= 0)返回false,而0 <= i返回true。他们俩都应该是真的。我不确定这是否是一个精确的东西,但我不会这么认为,因为我很难对这些值进行编码。请帮助我理解这个基本问题。

如果有帮助我试图通过获得交点然后检查它是否在x和y起点和终点之间来评估点是否在一条线上。当我试图检查x或y是否在其轴上时,这会成为一个问题,那么你会遇到检查0是否介于0和0之间的问题。这就是它会落在线上。

1 个答案:

答案 0 :(得分:7)

关系运算符的链接是不可能的(根据期望产生有效结果),您需要编写单独的指令来验证每个条件。

由于absence of explicit parenthesis and LTR association,声明如

  if(0 <= i <= 0) 

评估为

  if( (0 <= i) <= 0) 

归结为

  if ( 1 <= 0)

产生0,(FALSE)。

那就是说,有关

的说法
  

当我单独测试它时,我也尝试将语句读为(0 <= i && i <= 0) 0 <= i返回false而i <= 0返回true。他们都应该是真的

不正确,他们都是真的See for yourself