我在 Winows 7 上使用 gcc-mingw,4.5.2。无穷大和 nan 值的 printf 导致 1.#INF00 和 -1.#IND00 出现在屏幕上,而不是 infinity && nan 什么可以解决这个问题
UPD:我尝试使用isinf
和isnan
宏:
C3861: 'isinf': identifier not found error
C3861: 'isnan': identifier not found.
(我确实包括了 math.h)这是什么原因?
使用isinf()
andisnan()
宏来测试一个数字是无穷大还是 NaN。
将以下内容添加到您的 program.cpp
#ifndef isinf
#define isinf(x) ((x)!=(x))
#endif
#ifndef isnan
#define isnan(x) ((x)!=(x))
#endif
这就是编译器的标准库处理这些特殊值的方式。如果您想要不同的处理,您需要编写自己的打印函数来检测特殊值并打印您想要的文本。