nan, nanf, nanl
来自cppreference.com
| 定义于头文件 <math.h>
|
||
| float nanf( const char* arg ); |
(C99 起) | |
| double nan( const char* arg ); |
(C99 起) | |
| long double nanl( const char* arg ); |
(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内容的窄字符串 |
[编辑] 返回值
对应标识字符串arg的安静NaN值,或者若实现不支持安静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)[编辑] 参阅
| (C99) |
检查给定数是否是NaN (函数) |
| (C99) |
求值得到float类型的安静NaN (宏常量) |
| nanf, nan, nanl的 C++ 文档
|

