ANSI C - 比较奇数

时间:2012-05-18 17:05:01

标签: c compare

我正在尝试比较整数和双精度:

printf("%d\n", pos<(td+tr));
            if(td <= pos < (td+tr))
            {}

print语句正确评估比较pos<(td+tr)if(td <= pos < (td+tr))比较无法正确评估。

Pos是一个int:int pos; td和tr是双打:double td,tr;

2 个答案:

答案 0 :(得分:9)

td <= pos < (td+tr)

从左到右进行评估。首先是

td <= pos

被评估为真值。然后将该真值与td+tr进行比较。

这不是你想要的。你想要

if (td <= pos && pos < td+tr)

答案 1 :(得分:3)

您的代码没有按照您的想法执行,也许您需要

td <= pos && pos < (td+tr)