C/C++ NaN(Not a Number)


零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ 面向对象

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ 设计模式

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ STL

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 技术杂谈

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 常用函数


一.NaN(Not a Number)错误简介

NaN(Not a Number)表示一个无效的数字,或者该数字未经初始化。

在数据处理输入输出时,极有可能遇到数据读入空值,例如:运算中分母为00.0;对负数取平方根等操作,这将产生NaN


二.NAN的产生原因

NaN: not a number,表示“无效数字”,产生 NaN 的原因有以下几种:

1.对负数开方,如 : $\sqrt {-1}$ ;

2.对负数求对数,如:log(−1.0);

3.分母为0,如:$\frac {8}{0}$


三.输出NaN演示

C 语言中,可以使用 printf 函数来输出一个 NaN 值,请看下面的例子:

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C/C++ NaN(Not a Number)
//@Time:2021/10/28 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/

#include <stdio.h> /* printf */
#include <math.h> /* sqrt */
int main()
{
    double result = sqrt(-100);
    printf("result = %lf\n", result);
    return 0;
}
/*
输出:
result = -nan(ind)
*/

四.检测NaN(Not a Number)错误

下面几个宏即包含在 math.h 头文件,可用于判断一个表达式的结果是否为 infnan 或其他。使用时包括 include<math.h>

#include<math.h>
int isfinite(x);//判断x是否有限,是返回1,其它返回0;
int isnormal(x);//判断x是否为一个数(非inf或nan),是返回1,其它返回0;
int isnan(x);//当x时nan返回1,其它返回0;
int isinf(x);//当x是正无穷是返回1,当x是负无穷时返回-1,其它返回0。有些编译器不区分。

五.猜你喜欢

  1. C语言 数组下标越界和内存溢出区别
  2. C语言 使用指针遍历数组
  3. C语言 指针和数组区别
  4. C语言 指针数组和数组指针区别
  5. C语言 野指针
  6. C语言 函数值传递和址传递
  7. C语言 函数不定长参数
  8. C语言 函数指针
  9. C语言 指针函数
  10. C语言 回调函数 callback
  11. C语言 #pragma once
  12. C语言 #include <> 与 #include “” 区别
  13. C语言 const 修饰函数参数
  14. C语言 const 和 define 区别
  15. C语言 #运算符
  16. C语言 ##运算符
  17. C语言 __VA_ARGS__
  18. C语言 ##__VA_ARGS__
  19. C语言 函数不定长参数 ##__VA_ARGS__经典案例
  20. C语言 va_start / va_end / va_arg 自定义 printf 函数
  21. C语言 main 函数
  22. C语言 main 函数参数 main(int argc, char *argv[])
  23. C语言 局部变量
  24. C语言 全局变量
  25. C语言 全局变量和局部变量区别
  26. C语言 static
  27. C语言 extern
  28. C/C++ Unicode 和多字节区别
  29. C/C++ wprintf 输出中文乱码
  30. C/C++ char 和 wchar_t 相互转换
  31. C/C++ sqrt函数
  32. C/C++ NaN(Not a Number)

未经允许不得转载:猿说编程 » C/C++ NaN(Not a Number)
喜欢(0) 打赏

评论抢沙发

评论前必须登录!

不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!!

开始学习

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏