nan, nanf, nanl
提供: cppreference.com
一般的な数学関数
関数
基本操作
指数関数
冪関数
三角関数と双曲線関数
誤差関数とガンマ関数
最も近い整数
浮動小数点操作関数
分類
(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)
ヘッダ
<math.h>
で定義
float nanf( const char* arg );
(C99以上)
double nan( const char* arg );
(C99以上)
long double nanl( const char* arg );
(C99以上)
以下のように、それぞれ strtof 、 strtod または strtold を呼んだかのように、処理系定義の文字列 arg
を対応する quiet NaN の値に変換します。
呼び出し nan("n-char-sequence") は strtod ("NAN(n-char-sequence)", (char**)NULL ); の呼び出しと同等です。 ただし n-char-sequence は数字、ラテン文字およびアンダースコアの並びです。
呼び出し nan("") は呼び出し strtod ("NAN()", (char**)NULL ); と同等です。
呼び出し nan("string") は呼び出し strtod ("NAN", (char**)NULL ); と同等です。 ただし string は n-char-sequence でも空文字列でもない文字列です。
[編集] 引数
arg
-
NaN の内容を表すナロー文字列
[編集] 戻り値
識別文字列 arg
に対応する quiet NaN の値、または処理系が quiet NaN をサポートしない場合はゼロ。
[編集] 例
Run this code
#include <stdio.h> #include <math.h> #include <stdint.h> #include <inttypes.h> #include <string.h> int main(void) { double f1 = nan("1"); uint64_t f1n; memcpy (&f1n, &f1, sizeof f1); printf ("nan(\"1\") = %f (%" PRIx64 ")\n", f1, f1n); double f2 = nan("2"); uint64_t f2n; memcpy (&f2n, &f2, sizeof f2); printf ("nan(\"2\") = %f (%" PRIx64 ")\n", f2, f2n); double f3 = nan("0xF"); uint64_t f3n; memcpy (&f3n, &f3, sizeof f3); printf ("nan(\"0xF\") = %f (%" PRIx64 ")\n", f3, f3n); }
出力例:
nan("1") = nan (7ff8000000000001) nan("2") = nan (7ff8000000000002) nan("0xF") = nan (7ff800000000000f)
[編集] 関連項目
nanf, nan, nanl の C++リファレンス