为什么这 2 个 cout 语句给出相反的结果?

Why are these 2 cout statements giving opposite result?

我不明白为什么这些陈述给出的结果与我所说的不同 a==b 等同于 b==a

#include<iostream>
#include<cmath>
using namespace std;
int main()
{  
   cout<<(pow(10,2)==(pow(8,2)+pow(6,2)))<<endl;
   cout<<((pow(8,2)+pow(6,2))==pow(10,2))<<endl;
   return 0;
}

输出是-

1
0

这是双重比较问题。您可以使用类似的东西:

   cout<<(fabs(pow(10,2) - (pow(8,2)+pow(6,2))) <  std::numeric_limits<double>::epsilon() ) <<endl;
   cout<<(fabs((pow(8,2)+pow(6,2))-pow(10,2)) <  std::numeric_limits<double>::epsilon() ) <<endl;

参考: What is the most effective way for float and double comparison?