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

来源:互联网 发布:http请求 mac地址 编辑:程序博客网 时间:2024/06/04 23:33
怎样测试IEEE NaN 以及其它特殊值?
许多实现高质量IEEE 浮点的系统会提供简洁的工具去处理这些特殊值。例如, 在<math.h> 以非标准扩展功能, 或可能以<ieee.h> 或<nan.h> 提供预定义常数, 及象isnan() 这类的函数。这些工具的标准化进程正在进行中。一个粗陋但通常有效的测试NaN 的方法:
#define  isnan(x)       ((x)  !=  (x))
虽然一些不支持IEEE 的编译器可能会把这个判断优化掉。
C99 提供isnan(), fpclassify() 及其它一些类别的例程。
必要时,  还可以用sprintf() 格式化需测试的值, 在许多系统上,  它会产生“NaN” 或“Inf” 的字符串。你就可以比较了。
0 0
原创粉丝点击