Home C&C++函数库 c++ 语法 程序源码 Linux C库

lround

函数  <cmath> <ctgmath>

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 integer
返回最接近x的整数值,中间情况趋零四舍五入。
舍入值作为long int类型的值返回。请参阅llround以获取返回long long int的等效函数。
C99 头文件<tgmath.h> 提供了该函数的类型泛型宏版本。
C++11 这个头文件(<cmath>)为整型提供了额外的重载: 这些重载有效地在计算之前将x转换为double(在T是任何整型时定义)。

☲  参数


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 <stdio.h>      /* printf */
#include <math.h>       /* lround */

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;
}

可能输出:
Rounding using to-nearest rounding:
lround (2.3) = 2
lround (3.8) = 4
lround (-2.3) = -2
lround (-3.8) = -4

🍄  另请参阅



ceil 向上舍入(function )
floor 向下舍入(function )
trunc 截断(function )
lrint 舍入并强制转换为长整数(function )
nearbyint 舍入到最近的整数值(function )
round 就近舍入(function )
llround 舍入到最接近的值并转换为 long long integer(function )

联系我们 免责声明 关于CandCplus 网站地图