4

我在 Winows 7 上使用 gcc-mingw,4.5.2。无穷大和 nan 值的 printf 导致 1.#INF00 和 -1.#IND00 出现在屏幕上,而不是 infinity && nan 什么可以解决这个问题

UPD:我尝试使用isinfisnan宏:

C3861: 'isinf': identifier not found error 
C3861: 'isnan': identifier not found.

(我确实包括了 math.h)这是什么原因?

4

3 回答 3

3

使用isinf()andisnan()宏来测试一个数字是无穷大还是 NaN。

于 2011-10-22T11:55:10.763 回答
3

将以下内容添加到您的 program.cpp

#ifndef isinf
#define isinf(x) ((x)!=(x))
#endif


#ifndef isnan 
#define isnan(x) ((x)!=(x)) 
#endif
于 2015-04-29T00:52:16.070 回答
1

这就是编译器的标准库处理这些特殊值的方式。如果您想要不同的处理,您需要编写自己的打印函数来检测特殊值并打印您想要的文本。

于 2011-10-22T11:55:21.167 回答