nan, nanf, nanl
提供: cppreference.com
ヘッダ <math.h> で定義 | ||
float nanf(constchar* arg ); | (C99以上) | |
double nan(constchar* arg ); | (C99以上) | |
longdouble nanl(constchar* 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)
[編集]関連項目
(C99) | 指定された値が NaN かどうか調べます (関数マクロ) |
(C99) | float 型の quiet NaN に評価されるマクロ (マクロ定数) |
nanf, nan, nanl の C++リファレンス |