不知道为什么,输出的结果有时候会和标准答案在小数最后一位不一样,请指点

# include<stdio.h>
# include<math.h>
int main()
{
int b,d;
double a,c=0;
while (scanf("%lf %d", &a, &b)!= EOF)
{
for (d = 0,c=0; d < b; d++)
{
c = c+a;//c为前d项的和
a = sqrt(a);//求出下一项的值
a = 0.01 * round(100*a);
printf("%.2f\n", c);
}
return 0;
}