注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

一粒浮尘

飘渺虚无

 
 
 

日志

 
 

c语言:数值计算时如何判断结果是INF还是NAN  

2013-04-18 16:08:14|  分类: c/c++ Programmin |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
由于机器精度有限,当计算中遇到诸如1/0、log(-1)、sqrt(-1)等情况的时候,机器给出的结果就是INF或者NAN。程序里面那么多东西,出错是很正常的。如果在debug的时候,自己心里大概知道什么地方很可能遇到这些类似的情况,就到相应的地方加入一些判断或者输出的语句,将中间的计算过程打印出来,以便排查可能的错误(我不习惯使用gdb。。。)。可是我们该如何去判断这个中间结果是正常的还是INF还是NAN呢?
上面这个链接里给出了一些介绍,我就不必多说了。
按照上面链接里给出的一些提示,可以自己写一些函数来作判断,但是没有必要。直接使用isnan(),isinf()就可以了。
用法很简单,比如,a是某个double变量,那么isnan(a)的结果是:如果a不是NAN,那么返回值就是0,否则是1;isinf()的用法完全一样。


  评论这张
 
阅读(1585)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017