C 四舍五入到 6dp
C rounding double to 6dp
我正在使用以下代码在 C 中计算圆周率,但答案仅打印为 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 是使用的项数,因为代码使用无限级数。
您可以向 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 */
}
我正在使用以下代码在 C 中计算圆周率,但答案仅打印为 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 是使用的项数,因为代码使用无限级数。
您可以向 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 */
}