|
发表于 2018-4-12 18:46:11
|
显示全部楼层
- #include <stdio.h>
- int main()
- {
- double pi = 3.1415926535898;
- printf("%.7lf\n", pi);
- printf("%.8lf\n", pi);
- printf("%.10lf\n", pi);
- printf("%.15lf\n", pi);
- int i;
- double result = 0;
- double last = 1;
- int n;
- for(n = 1; last >= 1e-8; n++)
- {
- if(n % 2)
- {
- i = 1;
- }
- else
- {
- i = -1;
- }
- result = result + i * (1 / (2 * (double)n - 1));
- last = (1 / (2 * (double)n - 1));
- }
- // printf("%.10f",last);
- printf("%10.7f", result * 4);
-
- return 0;
- }
复制代码
- 3.1415927
- 3.14159265
- 3.1415926536
- 3.141592653589800
- 3.1415927请按任意键继续. . .
复制代码
你这样通过循环计算出的pi值本来就不是“准确”的
可以看到result*4的结果是 3.1415926735902504
而“准确”的pi值是 3.1415926535898
另一方面,printf内部也帮你做了很多事 |
|