다음을 통해 공유


rint, , rintfrintl

부동 소수점 값을 부동 소수점 형식의 가장 가까운 정수로 반올림합니다.

구문

double rint( double x );
float rintf( float x );
long double rintl( long double x );
#define rint(X) // Requires C11 or higher

float rint( float x );  // C++ only
long double rint( long double x );  // C++ only

매개 변수

x
반올림할 부동 소수점 값입니다.

반환 값

rint 함수는 x에 가장 가까운 정수를 나타내는 부동 소수점 값을 반환합니다. 중간값은 nearbyint 함수와 마찬가지로 부동 소수점 반올림 모드의 현재 설정에 따라 반올림됩니다. nearbyint 함수와 달리 rint 함수는 결과가 인수의 값과 다른 경우 FE_INEXACT 부동 소수점 예외를 일으킬 수 있습니다. 오류 반환이 없습니다.

입력 SEH 예외 _matherr 예외
± INF, QNaN, IND 없음 없음
Denormals EXCEPTION_FLT_UNDERFLOW 없음

설명

C++에서는 오버로드를 허용하므로 rintfloat 값을 사용 및 반환하는 long double 의 오버로드를 호출할 수 있습니다. C 프로그램에서 이 함수를 호출하기 위해 <tgmath.h> 매크로를 사용하지 않는 한, rint은 항상 double을 취하고 반환합니다.

<tgmath.h>rint() 매크로를 사용하는 경우 인수 형식에 따라 선택되는 함수 버전이 결정됩니다. 자세한 내용은 형식-제네릭 수학을 참조하세요.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.

요구 사항

함수 C 헤더 C++ 헤더
rint, , rintfrintl <math.h> <cmath>
rint 매크로 <tgmath.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

예시

// 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));
}
rint(2.499999) is 2
rint(-2.499999) is -2
rintf(2.800000) is 3
rintf(-2.800000) is -3
rintl(2.500000) is 3
rintl(-2.500000) is -3

참고 항목

수학 및 부동 소수점 지원
ceil, , ceilfceill
floor, , floorffloorl
fmod, fmodf
lrint, lrintf, lrintl, llrint, llrintfllrintl
lround, lroundf, lroundl, llround, llroundfllroundl
nearbyint, , nearbyintfnearbyintl
rint