1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#include <fenv.h> #include <math.h> float nearbyintf(float x) { #ifdef FE_INEXACT #pragma STDC FENV_ACCESS ON int e; e = fetestexcept(FE_INEXACT); #endif x = rintf(x); #ifdef FE_INEXACT if (!e) feclearexcept(FE_INEXACT); #endif return x; }