txt数据文件内容如图:
执行代码为
#include <stdio.h> int main() { FILE *fr; char a[]="d:\\projects\\chenping\\data1.txt"; float x[2],m; //double x[2],m; int i,j; fr=fopen(a,"r"); for(i=0;i<2;i++) { fscanf(fr,"%f",x+i); //fscanf(fr,"%lf",x+i); m=x[i]; } fclose(fr); for(j=0;j<2;j++) printf("%lf\t",x[j]); return 0; }
如果采用数组为单精度(float)则读出来数据会有偏差,而且每次结果都是一样的,如下图:
中间空白为TAB,已经验证没有关系,而且将19500.56改为0.56,读出的结果也是一致的;
将x[]改为双精度(double)也完全没有关系。
求路过的大神指导为什么会这样?感激不尽
时间: 2024-11-05 14:48:57