名前空間
変種
操作

HUGE_VALF, HUGE_VAL, HUGE_VALL

提供: cppreference.com
< c‎ | numeric‎ | math
 
 
 
一般的な数学関数
関数
基本操作
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
指数関数
(C99)
(C99)
(C99)
(C99)
冪関数
(C99)
(C99)
三角関数と双曲線関数
(C99)
(C99)
(C99)
誤差関数とガンマ関数
(C99)
(C99)
(C99)
(C99)
最も近い整数
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
浮動小数点操作関数
(C99)(C99)
(C99)
(C99)
分類
(C99)
(C99)
(C99)
(C99)(C99)
マクロ定数
HUGE_VALFHUGE_VALHUGE_VALL
(C99)(C99)
 
ヘッダ <math.h> で定義
#define HUGE_VALF /*implementation defined*/
(C99以上)
#define HUGE_VAL  /*implementation defined*/
#define HUGE_VALL /*implementation defined*/
(C99以上)

HUGE_VALFHUGE_VAL および HUGE_VALL マクロは、オーバーフローの場合 (math_errhandling を参照) に浮動小数点関数および演算子によって返される値と等しい、正の浮動小数点定数式に展開されます。

定数 説明
HUGE_VALF オーバーフローを表す正の float の式に展開されます
HUGE_VAL オーバーフローを表す正の double の式に展開されます。 float で表現可能であるとは限りません
HUGE_VALL オーバーフローを表す正の long double の式に展開されます。 float または double で表現可能であるとは限りません

浮動小数点の無限大をサポートする処理系では、これらのマクロは常にそれぞれ floatdouble および long double の正の無限大に展開されます。

[編集]

#include <math.h>
#include <stdio.h>
int main(void)
{
    double result = 1.0/0.0;
    printf("1.0/0.0 = %f\n", result);
    if (result == HUGE_VAL)
        puts("1.0/0.0 == HUGE_VAL\n");
}

出力例:

1.0/0.0 = inf
1.0/0.0 == HUGE_VAL

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: 231)
  • F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: 517)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: 212)
  • F.9/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: 454)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.5 HUGE_VAL

[編集] 関連項目

正の無限大または float をオーバーフローすることが保証されている値に評価されるマクロ
(マクロ定数) [edit]