我試圖比較兩個座標。我發現,我的循環永遠不會停止,因爲這樣:當它真的爲真時,運算符> =返回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