[记] C语言中的nan和inf

引言

在数据处理输入输出时,可能遇到数据读入空值(极大、极小)、运算中分母为0或0.0,对0取对数等操作。将产生nan或inf 。

NAN的产生原因

nan:not a number, 表示 “无效数字”

  1. 对负数开方,
  2. 对负数求对数
  3. 0.0*inf
  4. inf/inf
  5. inf-inf

注意:nan是无序的(unordered), 无法对其进行逻辑运算。他不大于,小于或者等于任何数(包括自己),将< > <= >= 作用于nan产生一个exception. 得到nan时就查看是否有非法操作,如果表达式中含有nan, 那么表达式的结果为nan。

INF的产生原因

INF:infinite,表示“无穷大”
超出浮点数的表示范围(溢出)

  1. 1.0/0.0 = inf
  2. -1.0/0.0 = inf
  3. 0.0+inf = inf
  4. log(0)

注意: 得到inf时就看是否有溢出或者除以0。inf在C语言表达式中就表示数学里无限的概念,如: 1.0/inf等于0.0 ,并可以与其它浮点数进行比较(可以参与<= , >+, ==, != 等运算)

nan和inf的判断

#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,负无穷时返回-1,其他返回0

例子 nan

#include <stdio.h>
#include <math.h>

int main()
{
   printf("isnan(0.0)      : %d\n", isnan(0.0));
   printf("isnan(1.0/0.0)      : %d\n", isnan(1.0/0.0));
   printf("isnan(-1.0/0.0)      : %d\n", isnan(1.0/0.0));
   printf("isnan(sqrt(-1.0))     : %d\n", isnan(sqrt(-1.0)) );
  
  return 0;
}

输出:
isnan(0.0) : 0
isnan(1.0/0.0) : 0
isnan(-1.0/0.0) : 0
isnan(sqrt(-1.0)) : 1


例子 inf

#include <stdio.h>
#include <math.h>

int main()
{
   printf("isinf(0.0)      : %d\n", isinf(0.0));
   printf("isinf(1.0/0.0)      : %d\n", isinf(1.0/0.0));
   printf("isinf(-1.0/0.0)      : %d\n", isinf(1.0/0.0));
   printf("isinf(sqrt(-1.0))     : %d\n", isinf(sqrt(-1.0)) );
  
  return 0;
}

输出:
isinf(0.0) : 0
isinf(1.0/0.0) : 1
isinf(-1.0/0.0) : 1
isinf(sqrt(-1.0)) : 0

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在编程中我们总要进行一些数学运算以及数字处理,尤其是浮点数的运算和处理,这篇文章主要介绍C语言下的数学库。而其他语...
    欧阳大哥2013阅读 5,613评论 0 12
  • 一、PyCharm的基本使用1.1、注释:为了方便自己或者其他人查看单行注释:用 # 号单行注释多行注释: 用 ...
    IIronMan阅读 9,151评论 3 18
  • 一、ECMAScript 一元运算符 一元运算符只有一个参数,即要操作的对象或值。它们是 ECMAScript 中...
    耦耦阅读 605评论 0 0
  • 笛卡尔积 将第一个关系的每个元组与第二个关系的所有元组都进行连接。 自然连接(内连接) 自然连接和笛卡尔积运算都作...
    zlcook阅读 248评论 0 1
  • 桂子丹露,芦花吹白长堤。 回望高城,其下前湖潦清, 野凫傍游; 向晚风车客散,残柳疏烟, 钟声渐远。 料得朝来红日...
    摩羯星一号阅读 324评论 3 4

友情链接更多精彩内容