14.4 怎样测试IEEE NaN以及其它特殊值?

许多实现高质量IEEE 浮点的系统会提供简洁的工具去处理这些特殊值。

例如, 在<math.h> 以非标准扩展功能, 或可能以<ieee.h> 或<nan.h> 提供预定义常数, 及象isnan() 这类的函数。

这些工具的标准化进程正在进行中。

一个粗陋但通常有效的测试NaN 的方法:

  #define isnan(x) ((x) != (x))

虽然一些不支持IEEE 的编译器可能会把这个判断优化掉。

C99 提供isnan(), fpclassify() 及其它一些类别的例程。

必要时, 还可以用sprintf() 格式化需测试的值, 在许多系统上, 它会产生“NaN” 或“Inf” 的字符串。

你就可以比较了。

参见问题19.38。

永不止步步 发表于01-18 10:19 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:345377个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号