C语言调试输出变量为-1.#IND00 -1.#INF00 1.#INF00

我是研究僧i 提交于 2020-01-19 11:59:35

-1.#IND00:程序中有不合法的计算,比如对一个负数开根号,或者求log(-1)这些等等;

-1.#INF00:计算结果为负无穷,比如求-1/0;

1.#INF00:计算结果为正无穷,比如1/0;

在math.h头文件中,可以用isnan()函数(is not a number,是否不是一个数字)判断一个数是否是合法计算结果, 返回true表示计算结果非法,false表示合法。也可以用isinf()函数(is infinite,是否是无穷大)判断一个数是否是无穷大,返回true表示计算结果是无穷大,false表示不是无穷大。

#include <stdio.h>
#include "math.h"

int main()
{
	double x = 0;
	double y = -1/x;
	//double y = log(double(-1));

	if (isnan(y))//如果计算非法
		printf("not a number\n");
	else if (isinf(y))//如果计算结果为无穷大
		printf("infinite\n");
	else//计算结果正常
		printf("%lf\n", y);

	return 0;
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!