C 四舍五入到 6dp

时间:2021-03-02 13:53:42

标签: c pi

我正在使用以下代码计算 C 中的 pi,但答案仅打印到 6dp。

代码:

#include<stdio.h>
#include<stdlib.h>

long double calc_pi(int terms) {
    long double result = 0.0F;
    long double sign = 1.0F;

    for (int n = 0; n < terms; n++) {
                result += sign/(2.0F*n+1.0F);
            sign = -sign;
        }

    return 4*result;
}


int main(int argc, char* args[]) {
        long double pi = calc_pi(atoi(args[1]));
    printf("%LF", pi);
}

输出:

$ ./pi 10000
3.141493

10000 是使用的术语数,因为代码使用了无限级数。

1 个答案:

答案 0 :(得分:1)

您可以向 printf() 格式说明符添加精度说明符以使其打印更多数字。

int main(int argc, char* args[]) {
        long double pi = calc_pi(atoi(args[1]));
    printf("%.30LF", pi); /* have it print 30 digits after the decimal point */
}