朋友们!
我最近开始学习C,目前正在尝试一些数学运算。 我正在努力理解为什么下面的代码片段计算信息错误:
result = sqrt(5/8 + sqrt(5)/8);
printf("Result is %1.15Lf\n", result);
我试图先分开计算一个部分,然后再计算另一个部分,但仍有相同的问题。
它给了我:
Result is 0.528685631720282
当我用WolframAlpha检查结果时,它大约是0.9510565。
感谢您的关注!
答案 0 :(得分:0)
运行此代码,您将获得正确的结果:
long double result = sqrt(5.0/8.0 + sqrt(5.0)/8.0);
printf("Result is %1.15Lf\n", result);
函数中的所有数字都是整数,我不知道程序中结果的数据类型,但它也应该与您期望的结果类型相同。
如你所说,你刚刚开始学习C.请阅读有关数据类型在除法,乘法等方面的重要性。