为什么我们不能将浮点值与某个数值进行比较

Sub*_*bbu 2 c++ floating-point

我尝试了下面的代码,我为变量分配了一个浮点值,并将它与浮点值进行了比较,但它没有给出所需的输出。这里a==13.30真的,我认为它会打印“a” 而不是它打印“ 5

#include<iostream>
using namespace std;
int main()
{
    float a=13.30;
    if(a==13.30)
    cout<<a;
    else
    cout<<"5";

}
Run Code Online (Sandbox Code Playgroud)

输出是“ 5而不是“a”

rus*_*tyx 8

13.30是一个double。尝试与13.30f.

0.30 无法精确表示,并且由于 double 具有更高的精度,因此它不是精确匹配。