C ++中的lrint()函数使用当前的舍入模式将参数舍入为整数值。
C ++中的lrint()函数使用当前的舍入模式将参数舍入为整数值。当前的舍入模式由fesetround()函数确定。它类似于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()函数采用单个参数并返回type的值long int。此函数在<cmath>头文件中定义。
lrint()函数采用单个参数值取整。
lrint()函数使用fegetround()指定的舍入方向将参数x舍入为整数值,并返回中的值long int。
默认情况下,舍入方向设置为“最接近”。可以使用fesetround()函数将舍入方向设置为其他值。
#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
#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函数将返回与输入相同的值。所以它在实际中并不常用来表示整数值。