同じ計算を 2 回繰り返していますが、一方では浮動小数点例外が発生し、他方ではそうではありません。
#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
どうしたの?