當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


C語言 llrint用法及代碼示例

C語言math頭文件(math.h)中llrint函數的用法及代碼示例。

用法:

long long int llrint  (double x);
long long int llrintf (float x);
long long int llrintl (long double x);
舍入並轉換為long long整數
回合x使用由指定的舍入方向為整數值fegetround,並將其作為類型的值返回long long int

lrint對於返回a的等效函數long int

標頭<tgmath.h>提供此函數的type-generic宏版本。
額外的過載在此頭文件中提供(<cmath>) 為了整數類型:這些重載有效地轉換x到一個double計算之前(為T有任何整數類型)。

參數

x
取舍價值。

返回值

的價值x四舍五入為附近的整數,轉換為類型的值long long int
如果四舍五入的值超出了返回類型的範圍,則返回的值未指定,並且域錯誤或溢出範圍誤差可能會發生(或不發生,具體取決於實現方式)。

如果一個域錯誤發生:
- 和math_errhandlingMATH_ERRNO設置:全局變量errno被設定為EDOM
- 和math_errhandlingMATH_ERREXCEPT設置:FE_INVALID被拋出

如果溢出範圍誤差發生:
- 和math_errhandlingMATH_ERRNO設置:全局變量errno被設定為ERANGE
- 和math_errhandlingMATH_ERREXCEPT設置:FE_OVERFLOW被拋出

示例

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

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 ( "llrint (2.3) = %lld\n", llrint(2.3) );
  printf ( "llrint (3.8) = %lld\n", llrint(3.8) );
  printf ( "llrint (-2.3) = %lld\n", llrint(-2.3) );
  printf ( "llrint (-3.8) = %lld\n", llrint(-3.8) );
  return 0;
}


可能的輸出:

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

相關用法


注:本文由純淨天空篩選整理自C標準庫大神的英文原創作品 C llrint function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。