#include <iostream>
using namespace std;
int
main ()
{
double a = 0.01;
double b = 45.01 - 45;
double c = b;
if (a == c)
cout << "a is 0.01" << '\n';
else
cout << "a is not 0.01" << '\n';
return 0;
}
运行上面的代码将给出输出“ a不是0.01”而不是“ a是0.01”。我不明白为什么if语句弄乱了a和c的双精度值?在这里为什么和a不等于b和c?我应该怎么做才能得到“ a is 0.01”的期望输出?
您不能分配一个块数组来调用使用==运算符的现有块。那样做就可以了!
#include <iostream>
using namespace std;
int main ()
{
double a, b, c;
a = 0.01;
b = 45.01 - 45;
c = b;
{
if (a >= c)
{
cout << "a is = " << c << '\n';
}
if (!(a >= c))
{
cout << "a is = " << c << '\n';
}
else
cout << "The Value of C = " << c << '\n';
return 0;
}
}