Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 Rint(), rintf(), rintl()

<시간/>

여기서 우리는 세 가지 기능을 볼 것입니다. 이러한 함수는 Rint(), rintf() 및 rintl()입니다. 이 함수는 부동 소수점 값을 반올림된 형식으로 변환하는 데 사용됩니다.

rint() 함수

이 함수는 부동 소수점 값을 정수로 반올림하는 데 사용됩니다. 구문은 아래와 같습니다. 결과가 반환 유형을 벗어나면 도메인 오류가 발생할 수 있습니다. 인수가 0 또는 무한대이면 수정되지 않은 값을 반환합니다.

float rint(float argument)
double rint(double argument)
long double rint(long double argument)

#include <cmath>
#include <iostream>
using namespace std;
main() {
   double a, b, x, y;
   x = 53.26;
   y = 53.86;
   a = rint(x);
   b = rint(y);
   cout << "The value of a: " << a << endl;
   cout << "The value of b: " << b;
}

출력

The value of a: 53
The value of b: 54

rintf() 함수

이것은 rint와 같지만 유일한 차이점은 여기에서 모든 매개변수와 반환 유형이 float 유형이라는 것입니다. 이 예에서는 fesetround() 메서드를 사용하여 라운드 유형을 지정합니다.

float rintf(float argument)

#include <cmath>
#include <fenv.h>
#include <iostream>
using namespace std;
main() {
   double a, b, x, y;
   x = 53.26;
   y = 53.86;
   fesetround(FE_UPWARD);
   a = rintf(x);
   fesetround(FE_DOWNWARD);
   b = rintf(y);
   cout << "The value of a: " << a << endl;
   cout << "The value of b: " << b;
}

출력

The value of a: 54
The value of b: 53

rintl() 함수

이것은 rint와 같지만 유일한 차이점은 여기에서 모든 매개변수와 반환 유형이 long double 유형이라는 것입니다. 이 예에서는 fesetround() 메서드를 사용하여 라운드 유형을 지정합니다.

long double rintl(long double argument)

#include <cmath>
#include <fenv.h>
#include <iostream>
using namespace std;
main() {
   double a, b, x, y;
   x = 53547.55555555555;
   y = 53547.55555555523;
   fesetround(FE_UPWARD);
   a = rintl(x);
   fesetround(FE_DOWNWARD);
   b = rintl(y);
   cout << "The value of a: " << a << endl;
   cout << "The value of b: " << b;
}

출력

The value of a: 53548
The value of b: 53547