C语言nan问题你好,很高兴回答你的问题 。
NAN 的意思就是“不是数 not a number”
具体要看你什么函数表达式 。
还有问题可以追问 。
C语言中INF和NAN是什么意思inf :infinity (linux)等同于#INF:infinity
(windows)
nan :not a
number等同于
#IND:indeterminate (windows)
注意:1、inf一般是因为得到的数值,超出浮点数的表示范围(溢出,即阶码部分超过其能表示的最大值);而nan一般是因为对浮点数进行了未定义的操作,如对-1开方 。
2、nan==nan
结果是0或false , 即不能和nan进行比较,和nan进行比较得到的结果总是false或0 。所以可以用函数:int
isNumber(double d){return (d==d);}来判断d是否为nan,若d是nan则返回0,否则返回非零值 。
3、1.0/0.0等于inf , -1.0/0.0等于-inf,0.0 inf=inf;
4、对负数开方sqrt(-1.0)、对负数求对数(log(-1.0))、0.0/0.0、0.0*inf、inf/inf、inf-inf这些操作都会得到nan 。(0/0会产生操作异常;0.0/0.0不会产生操作异常,而是会得到nan)
5、得到inf时就查看是否有溢出或者除以0,得到nan时就查看是否有非法操作 。
6、C语言的头文件float.h中,有定义的常量DBL_MAX , 这个常量表示“能表示出来的最大的双精度浮点型数值” 。float.h中还有常量DBL_MIN,DBL_MIN表示可以用规格化表示的最小的正浮点数,但DBL_MIN并不是最小的正浮点数,因为可以用可以用非规格化浮点数表示的更小 。可以用函数:int
isFiniteNumber(double d){return
(d=DBL_MAXd=-DBL_MAX);}来判断d是否为一个finite数(既不是inf,又不是nan(加入d为nan , 则d参加比较就会得到false(0)值)) 。
7、1.0/inf等于0.0 。
8、inf是可以与其他浮点数进行比较的,即可以参与=、 、==、!=等运算 。
下面这几个宏(用宏实现的,使用时跟函数的形式基本相同)是判断一个表达式的结果是否为inf、nan或其他:
头文件:includemath.h
宏的用法(类似于函数原型):int fpclassify(x);
int
isfinite(x);
int
isnormal(x);
int isnan(x);
int isinf(x);
具体用法:
1、int
fpclassify(x)
用来查看浮点数x的情况,fpclassify可以用任何浮点数表达式作为参数,fpclassify的返回值有以下几种情况 。
FP_NAN:x是一个“not a number” 。
FP_INFINITE: x是正、负无穷 。
FP_ZERO: x是0 。
FP_SUBNORMAL: x太小,以至于不能用浮点数的规格化形式表示 。
FP_NORMAL: x是一个正常的浮点数(不是以上结果中的任何一种) 。
2、int
isfinite(x)
当(fpclassify(x)!=FP_NANfpclassify(x)!=FP_INFINITE)时,此宏得到一个非零值 。
3、int
isnormal(x)当(fpclassify(x)==FP_NORMAL)时 , 此宏得到一个非零值 。
【c语言nan函数 c语言中函数怎么写】4、int
isnan(x)当(fpclassify(x)==FP_NAN)时,此宏返回一个非零值 。
5、int
isinf(x)当x是正无穷是返回1,当x是负无穷时返回-1 。(有些较早的编译器版本中,无论是正无穷还是负无穷,都返回非零值,不区分正负无穷) 。
C语言中nan()函数怎么用?double
nan(const
char
*tagp);
如果不支持 , 返回0.0;支持则返回以double类型表示的数值
用来判断一个字符串是否为数字(Not
a
Number的缩写)
[记] C语言中的nan和inf在数据处理输入输出时,可能遇到数据读入空值(极大、极?。⒃怂阒蟹帜肝?或0.0,对0取对数等操作 。将产生nan或inf。
nan:not a number, 表示 “无效数字”
INF:infinite,表示“无穷大”
超出浮点数的表示范围(溢出)
c语言nan函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言中函数怎么写、c语言nan函数的信息别忘了在本站进行查找喔 。
推荐阅读
- 30分钟看懂c语言学习,c语言基础入门知识
- 最流行的网站开发语言,最好的网站开发语言
- 如何在ppt做扇形图,ppt中如何做扇形图表分析
- mysql怎么打开管理员 mysql怎么用管理员身份运行
- 只狼ps4怎么u盘存档,只狼ps4怎么存档打多结局
- java怎么快捷代码补全,java补齐代码快捷键
- 角色扮演游戏不是网游,角色扮演游戏属于哪种游戏
- 浏览器java下载代码 java实现浏览器下载文件
- 租车运营公众号,租车运营公众号有哪些