名前空間
変種
操作

std::nan, std::nanf, std::nanl

From cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
共通の数学関数
関数
基本的な数学関数
(C++11)  
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
nannanfnanl
(C++11)(C++11)(C++11)
指数関数
(C++11)
(C++11)

(C++11)
(C++11)
べき乗関数
(C++11)
(C++11)
三角関数と
双曲線関数
(C++11)
(C++11)
(C++11)

誤差関数とガンマ関数
(C++11)
(C++11)
(C++11)
(C++11)
最近接整数への浮動小数点数操作
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
浮動小数点数の操作関数
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
分類と比較
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
マクロ定数
分類
(C++11)(C++11)(C++11)(C++11)(C++11)


 
ヘッダー <cmath> で定義
float       nanf( const char* arg );
(1) (C++11以降)
double      nan ( const char* arg );
(2) (C++11以降)
long double nanl( const char* arg );
(3) (C++11以降)

文字列 arg を、std::strtofstd::strtod、または std::strtold をそれぞれ呼び出したかのように、対応する静かなNaN値に変換します。

1) std::nanf("n-char-sequence") の呼び出し(ここで n-char-sequence は数字、ASCII文字、アンダースコアのシーケンス)は、std::strtof("NAN(n-char-sequence)", (char**)nullptr); の呼び出しと等価です。
std::nanf("") の呼び出しは、std::strtof("NAN()", (char**)nullptr); の呼び出しと等価です。
std::nanf("string") の呼び出し(ここで stringn-char-sequence でもなく、空文字列でもない場合)は、std::strtof("NAN", (char**)nullptr); の呼び出しと等価です。
2) (1) と同じですが、std::strtof の代わりに std::strtod を呼び出します。
3) (1) と同じですが、std::strtof の代わりに std::strtold を呼び出します。

目次

[編集] パラメーター

arg - NaN の内容を識別するナロー文字文字列

[編集] 戻り値

識別文字列 arg に対応する静かな NaN 値、または実装が静かな NaN をサポートしない場合はゼロ。

実装が IEEE 浮動小数点演算 (IEC 60559) をサポートしている場合、静かな NaN もサポートしています。

[編集] エラー処理

この関数は、math_errhandling で指定されたエラー条件のいずれにも従いません。

[編集]

#include <cmath>
#include <cstdint>
#include <cstring>
#include <iostream>
 
int main()
{
    double f1 = std::nan("1");
    std::uint64_t f1n; std::memcpy(&f1n, &f1, sizeof f1);
    std::cout << "nan(\"1\") = " << f1 << " (" << std::hex << f1n << ")\n";
 
    double f2 = std::nan("2");
    std::uint64_t f2n; std::memcpy(&f2n, &f2, sizeof f2);
    std::cout << "nan(\"2\") = " << f2 << " (" << std::hex << f2n << ")\n";
}

実行結果の例

nan("1") = nan (7ff0000000000001)
nan("2") = nan (7ff0000000000002)

[編集] 関連項目

(C++11)
与えられた数値が NaN かチェックする
(関数) [編集]
(C++11)
float 型のクワイエット NaN に評価される
(マクロ定数) [編集]
特殊な値「quiet not-a-number」(NaN) を表現できる浮動小数点数型を識別する
(std::numeric_limits<T> の public static メンバー定数) [編集]
特殊な値「signaling not-a-number」(NaN) を表現できる浮動小数点数型を識別する
(std::numeric_limits<T> の public static メンバー定数) [編集]
[static]
与えられた浮動小数点数型の quiet NaN 値を返す
(std::numeric_limits<T> の public static メンバー関数) [編集]
与えられた浮動小数点数型の signaling NaN 値を返す
(std::numeric_limits<T> の public static メンバー関数) [編集]
nanf, nan, nanlC ドキュメント
English 日本語 中文(简体) 中文(繁體)