C ++中的lrint()函數(shù)使用當前的舍入模式將參數(shù)舍入為整數(shù)值。
C ++中的lrint()函數(shù)使用當前的舍入模式將參數(shù)舍入為整數(shù)值。當前的舍入模式由fesetround()函數(shù)確定。它類似于rint(),但返回long int。
long int lrint(double x); long int lrint(float x); long int lrint(long double x); long int lrint(T x); //為整型
lrint()函數(shù)采用單個參數(shù)并返回type的值long int。此函數(shù)在<cmath>頭文件中定義。
lrint()函數(shù)采用單個參數(shù)值取整。
lrint()函數(shù)使用fegetround()指定的舍入方向?qū)?shù)x舍入為整數(shù)值,并返回中的值long int。
默認情況下,舍入方向設(shè)置為“最接近”??梢允褂胒esetround()函數(shù)將舍入方向設(shè)置為其他值。
#include <iostream>
#include <cmath>
#include <cfenv>
using namespace std;
int main()
{
//默認情況下,舍入方向為最接近的方向,即fesetround(FE_TONEAREST)
double x = 11.87;
long int result;
result = lrint(x);
cout << "四舍五入到最近 (" << x << ") = " << result << endl;
//中間的值四舍五入為更高的整數(shù)
x = 11.5;
result = lrint(x);
cout << "四舍五入到最近 (" << x << ") = " << result << endl;
//將舍入方向設(shè)置為DOWNWARD
fesetround(FE_DOWNWARD);
x = 11.87;
result = lrint(x);
cout << "向下舍入 (" << x << ") = " << result << endl;
//將舍入方向設(shè)置為UPWARD
fesetround(FE_UPWARD);
x = 33.32;
result = lrint(x);
cout << "向上舍入 (" << x << ") = " << result << endl;
return 0;
}運行該程序時,輸出為:
四舍五入到最近 (11.87) = 12 四舍五入到最近 (11.5) = 12 向下舍入 (11.8699) = 11 向上舍入 (33.3201) = 34
#include <iostream>
#include <cmath>
#include <cfenv>
using namespace std;
int main()
{
int x = 15;
long int result;
//將舍入方向設(shè)置為DOWNWARD
fesetround(FE_DOWNWARD);
result = lrint(x);
cout << "向下舍入 (" << x << ") = " << result << endl;
return 0;
}運行該程序時,輸出為:
向下舍入 (15) = 15
對于整數(shù)值,應(yīng)用lrint函數(shù)將返回與輸入相同的值。所以它在實際中并不常用來表示整數(shù)值。