C math.h错误结果

时间:2016-03-22 03:29:24

标签: c math.h

朋友们!

我最近开始学习C,目前正在尝试一些数学运算。 我正在努力理解为什么下面的代码片段计算信息错误:

result = sqrt(5/8 + sqrt(5)/8);
printf("Result is %1.15Lf\n", result);

我试图先分开计算一个部分,然后再计算另一个部分,但仍有相同的问题。

它给了我:

Result is 0.528685631720282

当我用WolframAlpha检查结果时,它大约是0.9510565。

感谢您的关注!

1 个答案:

答案 0 :(得分:0)

运行此代码,您将获得正确的结果:

long double result = sqrt(5.0/8.0 + sqrt(5.0)/8.0);
printf("Result is %1.15Lf\n", result);

函数中的所有数字都是整数,我不知道程序中结果的数据类型,但它也应该与您期望的结果类型相同。

如你所说,你刚刚开始学习C.请阅读有关数据类型在除法,乘法等方面的重要性。