我重复相同的计算两次,但在一次我得到一个浮点异常,而在另一个我没有。
#include <iostream>
#include <cmath>
#include <fenv.h>
using namespace std;
int main(void)
{
feenableexcept(-1);
double x,y,z;
x = 1.0;
y = (1.0/(24.3*24.0*3600.0))*x;
cout << "y = " << y << endl;
z = x/(24.3*24.0*3600.0);
cout << "z = " << z << endl;
return 0;
}
我在 g++ 和 clang++ 上都对其进行了测试,并在两者中都得到了以下输出
y = 4.76299e-07
Floating point exception
这是怎么回事?