if (j == steps && new_x != next_node->x && new_y != next_node->y) { std:: cout << "出現修正" << endl; agvs[i].setCurrentX(next_node->x); agvs[i].setCurrentY(next_node->y); },將這個if條件改爲,newx不爲整數
时间: 2024-02-10 22:11:24 浏览: 154
ver1.1改.STEP.step
如果将这个if条件改为new_x不为整数的话,就需要在判断条件中加上对new_x是否为整数的判断。具体来说,可以使用fmod函数来判断new_x是否为整数,fmod函数可以计算两个浮点数相除的余数。如果new_x除以1的余数不为0,那么它就不是整数。
修改后的代码如下:
```c++
if (j == steps && (new_x != next_node->x || fmod(new_x, 1.0) != 0)) {
std::cout << "出現修正" << endl;
agvs[i].setCurrentX(next_node->x);
agvs[i].setCurrentY(next_node->y);
}
```
这样就可以在new_x不为整数的时候进行位置修正了。需要注意的是,这个判断条件中还包括new_x是否等于next_node->x的判断,这是因为如果new_x已经等于next_node->x,那么就不需要进行位置修正了,否则就会出现不必要的修正操作。
阅读全文