nanl (Numerics) – C 中文開發手冊 - Break易站
阿新 • • 發佈:2020-07-13
[
C 語言中文開發手冊
nanl (Numerics) - C 中文開發手冊
在標頭檔案<math.h>中定義 | | |
---|---|---|
float nanf( const char* arg ); | | (since C99) |
double nan( const char* arg ); | | (since C99) |
long double nanl( const char* arg ); | | (since C99) |
實現定義字串轉換arg成相應的靜態NaN值,則通過呼叫strtof,strtod或者strtold,分別說明如下:通話nan("string")等同於通話strtod("NAN(string)", (char**)NULL);。通話nan("")等同於通話strtod("NAN()", (char**)NULL);。通話nan(NULL)等同於通話strtod("NAN", (char**)NULL);。
引數
arg | - | 窄字串標識NaN的內容 |
---|
返回值
安靜的NaN值與標識字串相對應,arg或者如果實現不支援安靜的NaN,則為零。
例
#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)C 語言中文開發手冊 ]