【发布时间】:2012-01-01 14:53:33
【问题描述】:
大家好,我知道 NaN(让我说我知道首字母缩略词代表 Not a Number)是什么,但我不明白 C++ 为什么返回它 - 以下是数学常数 e 的近似值 - 使用调试器时函数评估良好,它在写入控制台时返回 NaN
感谢您的反馈
double Factorial(int k)
{
if(k == 0)
return 1;
int value = 1;
for(int i = k; i > 0; i--)
value *= k;
return value;
}
double e(int p)
{
double value = 0.0;
for(int i = 0; i < p; i++)
{
value += 1/Factorial(i);
}
}
【问题讨论】:
-
您的 e 函数中缺少 return 语句。
-
p = 1 结果的测试值 = NaN
-
您发布的代码不合法。请发布一个最小、完整和正确的示例。
-
在 e 中的 for 循环下方,您可能应该有类似
return value;的内容。 -
感谢大家 - 现在我觉得自己像个真正的白痴 - 过去十分钟我一直在看这段代码,但不知道是怎么回事!谢谢!