如何计算根号2的精确值?

来源:百度知道 编辑:UC知道 时间:2024/05/17 03:13:27
我的意思是计算地更精确点,能保留后面30位小数;
请高手指点!
zubyzuby :
您能再具体说说吗?谢谢!

double 数最大精度只有20位
要精度达30位需自己创建大数。

下面用迭代法和库函数分别计算根号2。

#include <math.h>
void main()
{
int i;
double x1,x0=1;
long double y;
for( i=0;i<1000;i++)
{
x1=x0-(x0*x0-2.)/(2.*x0);
x0=x1;
}
printf("%.30lf\n",x0);
y = sqrt(2.0l);
printf("%.30lf",y);
}

1.414213562373094900000000000000 -- 迭代
1.414213562373095100000000000000 -- 库
1.4142135623730950488016887242097 -- 目标

到网上下载相关程序!

不知道用级数展开,可以用短除法开方啊

#include<stdio.h>
#include<math.h>
main()
{
printf("%.30f",sqrt(2));
getch();
}

最后运行结果为:
1.4142135623730951500000000000000