Previous Page
Next Page


Rounds a floating-point number to an integer value

#include <math.h>
double nearbyint ( double x  );
float nearbyintf ( float x  );
long double nearbyintl ( long double x  );

The nearbyint( ) functions round the value of the argument to the next integer value in the current rounding direction. The current rounding direction is an attribute of the floating-point environment that you can read and modify using the fegetround( ) and fesetround( ) functions. They are similar to the rint( ) functions, except that the nearbyint( ) functions do not raise the FE_INEXACT exception when the result of the rounding is different from the argument.


if ( fesetround( FE_TOWARDZERO) == 0)
  printf("The current rounding mode is \"round toward 0.\"\n");
  printf("The rounding mode is unchanged.\n");

printf("nearbyint(1.9) = %4.1f    nearbyint(-1.9) = %4.1f\n",
        nearbyint(1.9), nearbyint(-1.9) );

printf("round(1.9) = %4.1f        round(-1.9) = %4.1f\n",
        round(1.9), round(-1.9) );

This code produces the following output:

The current rounding mode is "round toward 0."
nearbyint(1.9) =  1.0    nearbyint(-1.9) = -1.0
round(1.9) =  2.0        round(-1.9) = -2.0

See Also

rint( ), lrint( ), llrint( ); round( ), lround( ), llround( ); nextafter( ), ceil( ), floor( ), fegetround( ), fesetround( )

Previous Page
Next Page