#include <math.h>

       long int lrint(double x);
       long int lrintf(float x);
       long int lrintl(long double x);

       long long int llrint(double x);
       long long int llrintf(float x);
       long long int llrintl(long double x);

       Link with -lm.

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       All functions shown above:
           _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE ||
           _POSIX_C_SOURCE >= 200112L;
           or cc -std=c99

       These  functions  round  their  argument  to the nearest integer value,
       using the current rounding direction (see fesetround(3)).

       Note that unlike rint(3), etc., the return type of these functions dif-
       fers from that of their arguments.

       These functions return the rounded integer value.

       If  x  is a NaN or an infinity, or the rounded value is too large to be
       stored in a long (long long in the case of the ll*  functions)  then  a
       domain error occurs, and the return value is unspecified.

       See  math_error(7) for information on how to determine whether an error
       has occurred when calling these functions.

       The following errors can occur:

       Domain error: x is a NaN or infinite, or the rounded value is too large
              An invalid floating-point exception (FE_INVALID) is raised.

       These functions do not set errno.

       These functions first appeared in glibc in version 2.1.

   Multithreading (see pthreads(7))
       The lrint(), lrintf(), lrintl(),  llrint(),  llrintf(),  and  llrintl()
       functions are thread-safe.

                                  2013-08-19                          LRINT(3)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2019 Hurricane Electric. All Rights Reserved.