为什么这个程序打印“是”作为输出?

时间:2017-08-31 16:18:38

标签: c++

我只是在玩数据类型并陷入了这种困境。 谁能在这里向我解释原因

#include<iostream>
using namespace std;

int main() {

    float a= 0.7;
    if(a < 0.7)
        cout<<"Yes";
    else
        cout<<"No";
    return 0;
}

我知道这是因为自动0.7作为文字将是双倍的。

#include<iostream>
using namespace std;
int main(){

    float a= 0.8;
    if(a < 0.8)
    cout<<"Yes";
    else
    cout<<"No";
    return 0;
}

1 个答案:

答案 0 :(得分:1)

0.7没有float的确切表示。近似float略小于double 0.7的{​​{1}}表示(这是if语句中用作常量时的默认解释。)

有关详细信息,请参阅链接的重复问题或评论中的无数变体。