首页 > 解决方案 > 为什么(如果)条件不满足,但功能正在工作?

问题描述

代码如下。当变量i*dx等于 140 时,这将不满足条件,但为什么 cout 有效?如果我将 1.4 更改为 1.3 或其他数字,则不会发生这种奇怪的事情。

#include <iostream>
#include <cmath>
using namespace std;

int main()
{   
    double dx = 0.01;
    float ip = 1.4;
    for(size_t i = 0; i < 200; ++i)
    {
        if(  (i*dx > ip)   &&   (abs(i*dx - ip) > 0)    &&   (i*dx < 1.6)  )
        {
            cout << "i = " << i << endl;
            cout << "i*dx = " << i*dx << endl;
            printf("printf. i*dx = %f \n", i*dx);   
            printf("printf. ip = %0.10f \n", ip);   
            break;
        }
    }
    return 0;
}

现在,问题解决了

标签: c++if-statementconditional-statements

解决方案


推荐阅读