编程c语言中nan,如何在C中使用nan和inf?

你可以testing你的实现是否有:

#include #ifdef NAN /* NAN is supported */ #endif #ifdef INFINITY /* INFINITY is supported */ #endif

INFINITY的存在由C99(或至less是最新的草案)保证,并且“扩展为浮点types(表示正或无符号无穷大(如果可用))的常量expression式;否则,在翻译时溢出的floattypes的正常数。 “

NAN可以被定义,也可以不被定义,并且“当且仅当该实现支持浮点types的安静NaN时才被定义,并且扩展为代表安静的NaN的floattypes的常量expression式。

请注意,如果您正在比较浮点值,请执行以下操作:

a = NAN;

即使这样,

a == NAN;

是错误的。 检查NaN的一种方法是:

#include if (isnan(a)) { ... }

你也可以这样做: a != a来testinga是否是NaN。

在C99的math.h中还有isfinite() , isfinite() , isinf()和signbit()macros。

C99也有nanfunction:

#include double nan(const char *tagp); float nanf(const char *tagp); long double nanl(ocnst char *tagp);

(参考:n1256)。

这样做没有编译器独立的方式,因为C(也就是C ++)标准都没有说浮点mathtype


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部