rint, rintf, rintl
부동 소수점 값을 부동 소수점 형식의 가장 가까운 정수로 반올림합니다.
double rint( double x );
float rint( float x ); // C++ only
long double rint( long double x ); // C++ only
float rintf( float x );
long double rintl( long double x );
매개 변수
- x
반올림할 부동 소수점 값입니다.
반환 값
rint 함수는 x에 가장 가까운 정수를 나타내는 부동 소수점 값을 반환합니다. 중간값은 nearbyint 함수와 마찬가지로 부동 소수점 반올림 모드의 현재 설정에 따라 반올림됩니다. nearbyint 함수와 달리 rint 함수는 결과가 인수의 값과 다른 경우 FE_INEXACT 부동 소수점 예외를 일으킬 수 있습니다. 반환되는 오류가 없습니다.
입력 |
SEH 예외 |
_matherr 예외 |
---|---|---|
± ∞, QNAN, IND |
없음 |
없음 |
Denormals |
EXCEPTION_FLT_UNDERFLOW |
없음 |
설명
C++에서는 오버로드를 허용하므로 float 및 long double 값을 사용 및 반환하는 rint의 오버로드를 호출할 수 있습니다. C 프로그램에서 rint는 항상 double을 사용 및 반환합니다.
요구 사항
함수 |
C 헤더 |
C++ 헤더 |
---|---|---|
rint, rintf, rintl |
<math.h> |
<cmath> |
호환성에 대한 자세한 내용은 호환성을 참조하십시오.
예제
// crt_rint.c
// Build with: cl /W3 /Tc crt_rint.c
// This example displays the rounded results of
// the floating-point values 2.499999, -2.499999,
// 2.8, -2.8, 2.5 and -2.5.
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 2.499999;
float y = 2.8f;
long double z = 2.5;
printf("rint(%f) is %.0f\n", x, rint (x));
printf("rint(%f) is %.0f\n", -x, rint (-x));
printf("rintf(%f) is %.0f\n", y, rintf(y));
printf("rintf(%f) is %.0f\n", -y, rintf(-y));
printf("rintl(%Lf) is %.0Lf\n", z, rintl(z));
printf("rintl(%Lf) is %.0Lf\n", -z, rintl(-z));
}
해당 .NET Framework 항목
참고 항목
참조
lround, lroundf, lroundl, llround, llroundf, llroundl