C++ lrint() 函数使用方法及示例

C++ 库函数 <cmath>

C ++中的lrint()函数使用当前的舍入模式将参数舍入为整数值。

C ++中的lrint()函数使用当前的舍入模式将参数舍入为整数值。当前的舍入模式由fesetround()函数确定。它类似于rint(),但返回long int。

lrint()原型[从C ++ 11标准开始]

long int lrint(double x);
long int lrint(float x);
long int lrint(long double x);
long int lrint(T x); //为整型

lrint()函数采用单个参数并返回type的值long int。此函数在<cmath>头文件中定义。

lrint()参数

lrint()函数采用单个参数值取整。

lrint()返回值

lrint()函数使用fegetround()指定的舍入方向将参数x舍入为整数值,并返回中的值long int。

默认情况下,舍入方向设置为“最接近”。可以使用fesetround()函数将舍入方向设置为其他值。

示例1:lrint()如何在C ++中工作?

#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;
    
    //中间的值四舍五入为更高的整数
    x = 11.5;
    result = lrint(x);
    cout << "四舍五入到最近 (" << x << ") = " << result << endl;

    //将舍入方向设置为DOWNWARD
    fesetround(FE_DOWNWARD);
    x = 11.87;
    result = lrint(x);
    cout << "向下舍入 (" << x << ") = " << result << endl;
    
    //将舍入方向设置为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

示例2:整数类型的lrint()函数

#include <iostream>
#include <cmath>
#include <cfenv>
using namespace std;

int main()
{
    int x = 15;
    long int result;
    
    //将舍入方向设置为DOWNWARD
    fesetround(FE_DOWNWARD);
    result = lrint(x);
    cout << "向下舍入 (" << x << ") = " << result << endl;
    return 0;
}

运行该程序时,输出为:

向下舍入 (15) = 15

对于整数值,应用lrint函数将返回与输入相同的值。所以它在实际中并不常用来表示整数值。

C++ 库函数 <cmath>