我试图比较两个坐标。我发现,我的循环永远不会停止,因为这样:当它真的为真时,运算符> =返回false
exit = ((p.x * sign_x) >= end_pos.x) && ((p.y * sign_y) >= end_pos.y);
cout<< p.x * sign_x << " >= " << end_pos.x
<< "=" << std::boolalpha << ((p.x * sign_x) >= end_pos.x)
<< " "
<< p.y * sign_y << " >= "<< end_pos.y
<< "=" << std::boolalpha << ((p.y * sign_y) >= end_pos.y)<<endl;
的exit
变量永远不会成为true
。在控制台中我看到:
9435.6 >= 132.6=true 180 >= 180=false
它是怎么回事?所有变量均为float
。数值写在上面。值为180
的变量值永不改变。
你的价值是什么类型? – mydogisbox 2012-04-28 13:12:23
如果他们是漂浮/双打,它可能发生。 – nullpotent 2012-04-28 13:13:11
是不是关于运算符'> ='? – 2012-04-28 13:13:47