许多实现高质量 IEEE 浮点的系统会提供简洁的工具去处理这些特殊值。例如, 在 <math.h> 以非标准扩展功能, 或可能以 <ieee.h> 或 <nan.h> 提供预定义常数, 及象 isnan() 这类的函数。这些工具的 标准化进程正在进行中。 一个粗陋但通常有效的测试 NaN 的方法: #define isnan(x) ((x) != (x)) 虽然一些不支持 IEEE 的编译器可能会把这个判断优化掉。 C99 提供 isnan(), fpclassify() 及其它一些类别的例程。
必要时, 还可以用 sprintf() 格式化需测试的值, 在许多系统上, 它会 产生 NaN" 或
Inf" 的字符串。你就可以比较了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。