用printf显示浮点数的一个问题
#include "stdio.h"
void main(){
float c[8]={5.1,5.2,5.4,7.1,7.7,8.9,7.9,4.3};
int p=0;
float z=0;
for (p=0;p<8;p++)
{
z=z+c[p];
}
printf("总分:%lf\n",z);
}
通过调试内存中z的值为:51.60000
但是printf("总分:%lf\n",z);在屏幕上显示结果为:51.600002
请问专家这是为什么?
如何才能在内存中显示正确的z在内存中的值51.60000?