c++输入得代码得不出结果


#include<iostream>
using namespace std;
 
int main()
{
    int x, y;
    for (x = 0; x <= 200; x++)    
    {
        for (y = 200; y >x; y--)
        {
            if (2.9*x + 1.7*y == 80.2)
            {
                cout << x << endl;
            }
        }
    }
    return 0;
}

如图,输出没有结果但是将 2.9,1.7,80.2改为29,17,802后却能输出得到结果13,求解答为什么会这样以及怎么解决

这可能是浮点数误差原因导致。建议使用29,17,802,全部int,数学上等价,没有误差

浮点数的比较不能单纯的等等,要想减取绝对值小于1的-8次方