1 #include <fenv.h> 2 #include <math.h> 3 4 /* nearbyint is the same as rint, but it must not raise the inexact exception */ 5 nearbyint(double x)6double nearbyint(double x) 7 { 8 #ifdef FE_INEXACT 9 #pragma STDC FENV_ACCESS ON 10 int e; 11 12 e = fetestexcept(FE_INEXACT); 13 #endif 14 x = rint(x); 15 #ifdef FE_INEXACT 16 if (!e) 17 feclearexcept(FE_INEXACT); 18 #endif 19 return x; 20 } 21