当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 lrint用法及代码示例


C语言math头文件(math.h)中lrint函数的用法及代码示例。

用法:

long int lrint  (double x);
long int lrintf (float x);
long int lrintl (long double x);
舍入并转换为长整数
回合x使用由指定的舍入方向为整数值fegetround,并将其作为类型的值返回long int

llrint对于返回a的等效函数long long int

标头<tgmath.h>提供此函数的type-generic宏版本。
额外的过载在此头文件中提供(<cmath>) 为了整数类型:这些重载有效地转换x到一个double计算之前(为T有任何整数类型)。

参数

x
取舍价值。

返回值

的价值x四舍五入为附近的整数,转换为类型的值long int
如果四舍五入的值超出了返回类型的范围,则返回的值未指定,并且域错误或溢出范围误差可能会发生(或不发生,具体取决于实现方式)。

如果一个域错误发生:
- 和math_errhandlingMATH_ERRNO设置:全局变量errno被设定为EDOM
- 和math_errhandlingMATH_ERREXCEPT设置:FE_INVALID被抛出

如果溢出范围误差发生:
- 和math_errhandlingMATH_ERRNO设置:全局变量errno被设定为ERANGE
- 和math_errhandlingMATH_ERREXCEPT设置:FE_OVERFLOW被抛出

示例

/* lrint example */
#include <stdio.h>      /* printf */
#include <fenv.h>       /* fegetround, FE_* */
#include <math.h>       /* lrint */

int main ()
{
  printf ("rounding using ");
  switch (fegetround()) {
    case FE_DOWNWARD: printf ("downward"); break;
    case FE_TONEAREST: printf ("to-nearest"); break;
    case FE_TOWARDZERO: printf ("toward-zero"); break;
    case FE_UPWARD: printf ("upward"); break;
    default: printf ("unknown");
  }
  printf (" rounding:\n");

  printf ( "lrint (2.3) = %ld\n", lrint(2.3) );
  printf ( "lrint (3.8) = %ld\n", lrint(3.8) );
  printf ( "lrint (-2.3) = %ld\n", lrint(-2.3) );
  printf ( "lrint (-3.8) = %ld\n", lrint(-3.8) );
  return 0;
}


可能的输出:

Rounding using to-nearest rounding:
lrint (2.3) = 2
lrint (3.8) = 4
lrint (-2.3) = -2
lrint (-3.8) = -4

相关用法


注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C lrint function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。