C++官网参考链接:https://cplusplus.com/reference/cmath/lround/
函数
<cmath>
lround
C99
long int lround(double x);
long int lroundf(float x);
long int lroundl(long double x);
C++11
long int lround(double x);
long int lround(float x);
long int lround(long double x);
long int lround (T x); // additional overloads for integral types
向最近舍入并且转换为long整数
返回在值上最接近x的整数值,中间的情况舍入远离0。
舍入值作为long int类型的值返回。参见llround获得返回long long int类型的值的等价函数。
C99
头文件
C++11
在此头文件(
形参
x
将要舍入的x。
返回值
x的值舍入为最近的整数,转换为long int类型的值。
如果舍入的值在返回类型的范围之外,则返回的值是未指定的,并且可能发生定义域错误或上溢范围错误(或者没有,取决于实现)。
如果发生定义域错误:
—math_errhandling具有MATH_ERRNO集合:全局变量errno设置为EDOM。
—math_errhandling具有MATH_ERREXCEPT集合:将引发FE_INVALID。
如果发生上溢范围错误:
—math_errhandling具有MATH_ERRNO集合:全局变量errno设置为ERANGE。
—math_errhandling具有MATH_ERREXCEPT集合:引发FE_OVERFLOW。
用例
/* lround example */
#include
#include
int main ()
{
printf ( "lround (2.3) = %ld\n", lround(2.3) );
printf ( "lround (3.8) = %ld\n", lround(3.8) );
printf ( "lround (-2.3) = %ld\n", lround(-2.3) );
printf ( "lround (-3.8) = %ld\n", lround(-3.8) );
return 0;
}
可能的输出:
