我试图比较两个坐标。 我发现,由于这一原因,我的住所永远不会停止:
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
How it can be?
所有变量均为<代码>float。 数值见上文。 贴有<代码>180<>>>/代码的可变值永远不会改变。