C ++中的llrint()函数使用当前的舍入模式将参数舍入为整数值。
当前的舍入模式由fesetround()函数确定。它类似于lrint(),但是返回long long int,而不是long int。
llrint()原型[从C ++ 11标准开始]
long long int llrint(double x);
long long int llrint(float x);
long long int llrint(long double x);
long long int llrint(T x); //为整型
llrint()函数采用单个参数,并返回long long int类型的值。此函数在<cmath>头文件中定义。
llrint()参数
llrint()函数将单个参数值取整。
llrint()返回值
llrint()函数使用fegetround()指定的舍入方向将参数x舍入一个整数值,并以long long int形式返回值。
默认情况下,舍入方向设置为'to-nearest'。
可以使用fesetround()函数将舍入方向设置为其他值。
示例1:llrint()如何在C ++中工作?
#include <iostream>
#include <cmath>
#include <cfenv>
using namespace std;
int main()
{
//默认情况下,舍入方向为最接近的方向,即fesetround(FE_TONEAREST)
double x = 11.87;
long long int result;
result = llrint(x);
cout << "四舍五入到最近 (" << x << ") = " << result << endl;
//中间值四舍五入为更高的整数
x = 11.5;
result = llrint(x);
cout << "四舍五入到最近 (" << x << ") = " << result << endl;
// 将舍入方向设置为DOWNWARD
fesetround(FE_DOWNWARD);
x = 11.87;
result = llrint(x);
cout << "向下舍入 (" << x << ") = " << result << endl;
// 将舍入方向设置为UPWARD
fesetround(FE_UPWARD);
x = 33.32;
result = llrint(x);
cout << "向上舍入 (" << x << ") = " << result << endl;
return 0;
}
运行该程序时,输出为:
四舍五入到最近 (11.87) = 12
四舍五入到最近 (11.5) = 12
向下舍入 (11.8699) = 11
向上舍入 (33.3201) = 34
示例2:整数类型的llrint()函数
#include <iostream>
#include <cmath>
#include <cfenv>
using namespace std;
int main()
{
int x = 15;
long long int result;
//将舍入方向设置为DOWNWARD
fesetround(FE_DOWNWARD);
result = llrint(x);
cout << "向下舍入 (" << x << ") = " << result << endl;
return 0;
}
运行该程序时,输出为:
向下舍入 (15) = 15
对于整数值,应用llrint函数将返回与输入相同的值。所以它在实际中并不常用来表示整数值。
展开全部