宿題じゃないのですが、C++の勉強で平方根を求めるプログラムを作ったのですが
ある特定の数以上になるとそれ以上数字が変わらなくなります。
なぜなのでしょうか?BorlandC++とCPADです。

#include<stdio.h>
#include<math.h>
main()
{
double a,i;
double root=1;
double x=1;
int hiku;
a=root*root;
for(i=0;;i++){
if(a<2){root=root+x;}
else {root=root-x;
x=x/10;}
a=root*root;
printf("値は%1.30f ルートは%1.30f",a,root);
hiku=getchar();
}
}