std:: nan, std:: nanf, std:: nanl
From cppreference.net
|
定義先ヘッダ
<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 を対応するquiet NaN値に変換します。これは、それぞれ std::strtof 、 std::strtod 、または std::strtold を呼び出す場合と同様です。
1)
呼び出し
std
::
nanf
(
"
n-char-sequence
")
は、
n-char-sequence
が数字、ASCII文字、アンダースコアのシーケンスである場合、呼び出し
std::
strtof
(
"NAN(
n-char-sequence
)
"
,
(
char
**
)
nullptr
)
;
と等価です。
呼び出し
std
::
nanf
(
"
string
")
は、
string
が
n-char-sequence
でも空文字列でもない場合、呼び出し
std::
strtof
(
"NAN"
,
(
char
**
)
nullptr
)
;
と等価です。
目次 |
パラメータ
| arg | - | NaNの内容を識別するナロウ文字列 |
戻り値
識別文字列 arg に対応するquiet NaN値、または実装がquiet NaNをサポートしていない場合はゼロ。
実装がIEEE浮動小数点演算(IEC 60559)をサポートしている場合、quiet 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
型のquiet NaNに評価される
(マクロ定数) |
|
[static]
|
特殊値「quiet not-a-number」(NaN)を表現できる浮動小数点型を識別する
(
std::numeric_limits<T>
のpublic staticメンバ定数)
|
|
[static]
|
特殊値「signaling not-a-number」(NaN)を表現できる浮動小数点型を識別する
(
std::numeric_limits<T>
のpublic staticメンバ定数)
|
|
[static]
|
指定された浮動小数点型のquiet NaN値を返す
(
std::numeric_limits<T>
のpublic staticメンバ関数)
|
|
[static]
|
指定された浮動小数点型のsignaling NaN値を返す
(
std::numeric_limits<T>
のpublic staticメンバ関数)
|
|
Cドキュメント
for
nanf
,
nan
,
nanl
|
|