lround, lroundf, lroundl, llround, llroundf, llroundl

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at lround, lroundf, lroundl, llround, llroundf, llroundl.

Rounds a floating-point value to the nearest integer.

Syntax

long lround(   
   double x   
);  
long lround(  
   float x  
);  // C++ only  
long lround(  
   long double x  
);  // C++ only  
long lroundf(  
   float x  
);  
long lroundl(  
   long double x  
);  
long long llround(   
   double x   
);  
long long llround(  
   float x  
);  // C++ only  
long long llround(  
   long double x  
);  // C++ only  
long long llroundf(  
   float x  
);  
long long llroundl(  
   long double x  
);  

Parameters

x
The floating-point value to round.

Return Value

The lround and llround functions return the nearest long or long long integer to x. Halfway values are rounded away from zero, regardless of the setting of the floating-point rounding mode. There is no error return.

Input SEH Exception Matherr Exception
± QNAN, IND none _DOMAIN

Remarks

Because C++ allows overloading, you can call overloads of lround or llround that take and return float and long double values. In a C program, lround and llround always take and return a double.

Requirements

Routine Required header
lround, lroundf, lroundl, llround, llroundf, llroundl <math.h>

For additional compatibility information, see Compatibility.

Example

// crt_lround.c  
// Build with: cl /W3 /Tc crt_lround.c  
// This example displays the rounded results of  
// the floating-point values 2.499999, -2.499999,   
// 2.8, -2.8, 3.5 and -3.5.  
  
#include <math.h>  
#include <stdio.h>  
  
int main( void )  
{  
   double x = 2.499999;  
   float y = 2.8f;  
   long double z = 3.5;  
  
   printf("lround(%f) is %d\n", x, lround(x));  
   printf("lround(%f) is %d\n", -x, lround(-x));  
   printf("lroundf(%f) is %d\n", y, lroundf(y));  
   printf("lroundf(%f) is %d\n", -y, lroundf(-y));  
   printf("lroundl(%Lf) is %d\n", z, lroundl(z));  
   printf("lroundl(%Lf) is %d\n", -z, lroundl(-z));  
}  
lround(2.499999) is 2  
lround(-2.499999) is -2  
lroundf(2.800000) is 3  
lroundf(-2.800000) is -3  
lroundl(2.500000) is 4  
lroundl(-2.500000) is -4   

.NET Framework Equivalent

System::Math::Round

See Also

Floating-Point Support
ceil, ceilf, ceill
floor, floorf, floorl
fmod, fmodf
lrint, lrintf, lrintl, llrint, llrintf, llrintl
round, roundf, roundl
nearbyint, nearbyintf, nearbyintl
rint, rintf, rintl