没有从我的C代码中获得正确的球体积?

时间:2015-04-26 08:47:23

标签: c

我刚开始学习c编程。我有一个问题。

我想从radius计算一个球体的体积。我的代码是:

enter image description here

但它并没有给我正确的答案1523.result是14797486080.000 但正确的ans将是14797486501.627。问题出在哪里?

我在这里找到了问题https://www.urionlinejudge.com.br/judge/en/problems/view/1011

4 个答案:

答案 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;
}