C++ 当条件为true时返回false的if语句
如果if语句在满足条件时不总是返回true,我会遇到问题(请参阅下面的代码) 这个if语句位于另一个循环中的一个循环中,该循环运行7次(实际上是6次,因为最后一次是空的),我注意到它在前3次迭代中工作正常。引起我注意的是C++ 当条件为true时返回false的if语句,c++,C++,如果if语句在满足条件时不总是返回true,我会遇到问题(请参阅下面的代码) 这个if语句位于另一个循环中的一个循环中,该循环运行7次(实际上是6次,因为最后一次是空的),我注意到它在前3次迭代中工作正常。引起我注意的是 在循环1的第一次迭代中,条件在循环2的第三次迭代中得到满足,并返回true 在循环1的第二次迭代中,条件在循环2的第二次迭代中满足,并返回true 在循环2的第三次迭代中,该条件在循环2的第一次迭代中得到满足,并返回true 在第四次迭代中,条件在所有情况下都为true,但它
- 在循环1的第一次迭代中,条件在循环2的第三次迭代中得到满足,并返回true
- 在循环1的第二次迭代中,条件在循环2的第二次迭代中满足,并返回true
- 在循环2的第三次迭代中,该条件在循环2的第一次迭代中得到满足,并返回true
- 在第四次迭代中,条件在所有情况下都为true,但它总是返回false
- 在第5次迭代中,条件在所有情况下都为false,并且返回false
- 在第6次迭代中相同
- 循环的第7次迭代为空
void compute_邻居(向量和位置、double和GPmin、double和GPmax)
{
向量i;
分配(positions.size(),neights_i);
对于(无符号i=0;i您将遇到舍入错误。
它打印0.15,但实际上是稍小或稍大的值,因此比较失败
比如说,
#include <iostream>
int main() {
double x = 0.15, y = 0.14999999999;
if (x <= y)
std::cout << "Equation returns true." << std::endl;
else
std::cout << "x = " << x << "; y = " << y << "; but x <= y is false." << std::endl;
}
#包括
int main(){
双x=0.15,y=0.149999999;
if(x)可能稍微超出范围?请尝试以更高的精度打印它:std::setprecision(1000)if语句在条件为true时不返回false。条件为false。这是您的证据。因此,您犯了一个错误。将其缩小到a,您将发现错误。@KorelK,因此不相关。请参阅