NAN

来自cppreference.com
< c‎ | numeric‎ | math


 
 
 
常用数学函数
类型
(C99)(C99)    

(C99)(C99)    

函数
基本运算
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大/最小运算
(C99)
(C23)    
指数函数
(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)
(C99)
(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮点操作函数
(C99)(C99)
(C99)(C23)
(C99)
窄化运算
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量与量指数函数
十进制重编码函数
全序与载荷函数
分类
(C99)
(C99)
(C99)
(C23)
宏常量
特殊浮点值
NANDEC_NAN
(C99)(C23)
参数与返回值
(C99)(C99)(C99)(C99)(C99)    
错误处理
(C99)    

 
在标头 <math.h> 定义
#define NAN /* 由实现定义 */
(C99 起)

NAN 展开成求值为安静非数(QNaN)的 float 类型常量表达式。若实现不支持 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 (第 TBD 页)
  • F.10/11/13 NAN (第 TBD 页)
  • C17 标准(ISO/IEC 9899:2018):
  • 7.12/5 NAN (第 TBD 页)
  • F.10/11/13 NAN (第 TBD 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.12/5 NAN (第 232 页)
  • F.10/11/13 NAN (第 518 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.12/5 NAN (第 213 页)
  • F.9/11/13 NAN (第 455 页)

参阅

(C99)(C99)(C99)
返回 NaN(非数)
(函数)
(C99)
检查给定数是否为 NaN
(宏函数)