命名空间
变体
操作

NAN

来自 cppreference.cn
< c‎ | 数值‎ | 数学
 
 
 
常用数学函数
函数
基本操作
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大值/最小值操作
(C99)
(C99)
指数函数
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
幂函数
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
三角函数和双曲函数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
最近整数浮点数
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮点数操作
(C99)(C99)
(C99)(C23)
(C99)
窄化操作
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子与量子指数
十进制重新编码函数
总序和载荷函数
分类
(C99)
(C99)
(C99)
(C23)
误差函数和伽马函数
(C99)
(C99)
(C99)
(C99)
类型
宏常量
特殊浮点值
NANDEC_NAN
(C99)(C23)
参数和返回值
错误处理
快速操作指示符
 
定义于头文件 <math.h>
#define NAN /*实现定义*/
(C99 起)

NAN 扩展为一个 float 类型的常量表达式,它求值为一个安静的非数字(QNaN)值。如果实现不支持 QNaN,则此宏常量未定义。

打印 NaN 的样式由实现定义。

目录

[编辑] 注意

有许多不同的 NaN 值,通过其有效载荷和符号位进行区分。由宏 NAN 生成的 NaN 的有效载荷内容和符号位由实现定义。

[编辑] 示例

显示打印 NaN 和 IEEE 格式的样式。

#include <inttypes.h>
#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
 
int main(void)
{
    const double f = NAN;
    uint64_t fn;
    memcpy(&fn, &f, sizeof f);
    printf("NAN:   %f %" PRIx64 "\n", f, fn);
}

可能的输出

NAN:   nan 7ff8000000000000

[编辑] 参考

  • C23 标准 (ISO/IEC 9899:2024)
  • 7.12/5 NAN (p: TBD)
  • F.10/11/13 NAN (p: TBD)
  • C17 标准 (ISO/IEC 9899:2018)
  • 7.12/5 NAN (p: TBD)
  • F.10/11/13 NAN (p: TBD)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.12/5 NAN (p: 232)
  • F.10/11/13 NAN (p: 518)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.12/5 NAN (p: 213)
  • F.9/11/13 NAN (p: 455)

[编辑] 另请参阅

(C99)(C99)(C99)
返回 NaN(非数字)
(函数) [编辑]
(C99)
检查给定数字是否为 NaN
(函数宏) [编辑]
C++ 文档 中的 NAN