C言語/標準ライブラリ/float.h

出典: フリー教科書『ウィキブックス(Wikibooks)』
このページ「C言語/標準ライブラリ/float.h」は、まだ書きかけです。加筆・訂正など、協力いただける皆様の編集を心からお待ちしております。また、ご意見などがありましたら、お気軽にトークページへどうぞ。

<float.h>はC言語の標準ヘッダーです[1]。 標準の浮動小数点型のさまざまな制限やパラメータに展開するいくつかのマクロが定義されています。

浮動小数点型の特性は、浮動小数点数の表現を記述するモデルと、浮動小数点数に関する情報を提供する値の観点から定義されています[2]

各浮動小数点タイプのモデルを定義するために、次のパラメータが使用されます。

符号 (±1)
指数表現の基数または基数 (1 以上の整数)
指数(最小 から最大 までの整数
精度 (基数で表される符号の桁数)
より小さい非負の整数(添え字の桁数)

浮動小数点数()は以下のモデルで定義されます。

浮動小数点型は、正規の浮動小数点数(x≠0の場合、f1>0)に加えて、準正規の浮動小数点数など、他の種類の浮動小数点数を含むことができます。浮動小数点型は、正規化浮動小数点数(x≠0、e=emin、f1=0)や非正規化浮動小数点数 数(x ≠ 0, e = emin, f1 = 0)や非正規化浮動小数点数(x ≠ 0, e > emin, f1 = 0)などの非正規浮動小数点数や、無限大や NaNです。NaNは、Not-a-Numberを意味するエンコーディングです。静かなNaNは、ほとんどすべての算術演算において qNaNは、ほとんどすべての算術演算において浮動小数点例外を発生させることなく伝播します。sNaNは、通常、浮動小数点の例外を発生させます。

マクロ[編集]

マクロとその意味、値の制約(または制限)を示します。


<float.h>で定義されるマクロ[3]
マクロ 意味 備考
FLT_ROUNDS
浮動小数点加算の丸めモード
-1
不確定なもの
0
ゼロに向かって
1
最も近い方向
2
正の無限大に向かって
3
負の無限大に向かって
FLT_EVAL_METHOD
浮動小数点評価における精度
-1
不確定
0
すべての演算と定数を、その型の範囲と精度で評価します。型の範囲と精度だけで評価する。
1
floatおよびdouble型の演算および定数を,double型の範囲および精度で評価する。double型の範囲と精度で評価し、long double型の演算と定数をlong double型の範囲と精度で評価する。型の範囲と精度で評価し,long double 型の演算と定数は,long double 型の範囲と精度で評価する。
2
すべての演算と定数をlong double型の範囲と精度で評価する。
FLT_HAS_SUBNORM
float型の非正規化数の有無
-1
不確定
0
存在しない(副正規数をサポートしていない)
1
あり (タイプは副次的な数値をサポートする)
DBL_HAS_SUBNORM
double型の非正規化数の有無
-1
不確定
0
存在しない(副正規数をサポートしていない)
1
あり (タイプは副次的な数値をサポートする)
LDBL_HAS_SUBNORM
long double型の非正規化数の有無
-1
不確定
0
存在しない(副正規数をサポートしていない)
1
あり (タイプは副次的な数値をサポートする)
FLT_RADIX 指数表示の基数。 前節の
FLT_MANT_DIG float型のFLT_RADIXを基数とした仮数部の桁数
DBL_MANT_DIG double型のDBL_RADIXを基数とした仮数部の桁数
LDBL_MANT_DIG long double型のLDBL_RADIXを基数とした仮数部の桁数
FLT_DECIMAL_DIG float型の仮数部の10進数での桁数
DBL_DECIMAL_DIG double型の仮数部の10進数での桁数
LDBL_DECIMAL_DIG long double型の仮数部の10進数での桁数
DECIMAL_DIG サポートされている最も幅の広い浮動小数点型の仮数部の10進数での桁数
FLT_DIG float で正確に表現可能な10進数
DBL_DIG
LDBL_DIG
FLT_MIN_EXP
DBL_MIN_EXP
LDBL_MIN_EXP
FLT_MIN_10_EXP
DBL_MIN_10_EXP
LDBL_MIN_10_EXP
FLT_MAX_EXP
DBL_MAX_EXP
LDBL_MAX_EXP
FLT_MAX_10_EXP
DBL_MAX_10_EXP
LDBL_MAX_10_EXP
FLT_MAX
DBL_MAX
LDBL_MAX
FLT_EPSILON
DBL_EPSILON
LDBL_EPSILON
FLT_MIN
DBL_MIN
LDBL_MIN
FLT_TRUE_MIN
DBL_TRUE_MIN
LDBL_TRUE_MIN


脚註[編集]

  1. ^ C11: WG14/N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x. ISO/IEC. (2011-04-12). p. 216, § 7.7 Characteristics of floating types. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf. 
  2. ^ C11: WG14/N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x. ISO/IEC. (2011-04-12). p. 28, § 5.2.4.2.2 Characteristics of floating types. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf. 
  3. ^ C11: WG14/N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x. ISO/IEC. (2011-04-12). p. 478, § B.6 Characteristics of floating types. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf. 

参考文献[編集]