我刚开始学习c编程。我有一个问题。
我想从radius计算一个球体的体积。我的代码是:
但它并没有给我正确的答案1523.result是14797486080.000 但正确的ans将是14797486501.627。问题出在哪里?
我在这里找到了问题https://www.urionlinejudge.com.br/judge/en/problems/view/1011
答案 0 :(得分:2)
您的计算在double
中执行,并在转让时转换为float
,因此您的精确度会降低。您可能应该将q
声明为double
。
另外,如果你真的关心精度,你应该使用更好的近似π。
答案 1 :(得分:1)
如果想要在结果中获得更好的精度,请尝试使用double而不是float。 32位浮点数将为您提供大约7位数的精度。 64位双精度将为您提供大约15位的精度。
答案 2 :(得分:0)
你可能只应该将q声明为double。你应该使用更好的近似π。
答案 3 :(得分:0)
尝试使用:
#include <stdio.h>
#include <math.h>
int main()
{
int a;
double volume;
printf("Enter the radius of a sphere: ");
scanf("%d", &a);
volume=(4.0/3) *3.14159*pow(a,3);
printf("Volume of a sphere is: %3f", volume);
return 0;
}