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

lround

函数  <cmath> <ctgmath>

C99 long long int llround (double x);
long long int llroundf (float x);
long long int llroundl (long double x);
C++11 long long int llround (double x);
long long int llround (float x);
long long int llround (long double x);
long long int llround (T x);        // additional overloads for integral types

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

☲  参数


x
舍入的值

☉  返回值



x的值舍入到最接近的整数,转换为long 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

☣  示例



/* llround example */
#include <stdio.h>      /* printf */
#include <math.h>       /* llround */

int main ()
{
  printf ( "llround (2.3) = %lld\n", llround(2.3) );
  printf ( "llround (3.8) = %lld\n", llround(3.8) );
  printf ( "llround (-2.3) = %lld\n", llround(-2.3) );
  printf ( "llround (-3.8) = %lld\n", llround(-3.8) );
  return 0;
}

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

🍄  另请参阅



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

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