各路大神,问下这里尾数后面的1是怎么变成4的,为啥后来又没变回1
#include <stdio.h>main ()
{
double k1=0.2,k2=k1;
printf ("%.32lf\n",k1);
printf ("%.32lf\n",k2);
k2=k1+0.1;printf("%.32lf\n",k2);
k2=k2-0.1;printf ("%.32lf\n",k2);
}
输出结果:
0.20000000000000001000000000000000
0.20000000000000001000000000000000
0.30000000000000004000000000000000
0.20000000000000004000000000000000 应该是计算的时候精度的损失吧{:10_245:} 精度损失,最多只能精确到16位,后16位为系统的随机数据
如我本地电脑编译的输出的值:
页:
[1]