c - 无法掌握 fscanf 在我的程序中读取浮点数的方式
问题描述
这将是我阅读的部分
do {
res=0;
res += fscanf(in , "%50s",recs[n].city);
res += fscanf(in , "%d.%d.%d ", &recs[n].d.d , &recs[n].d.m , &recs[n].d.y);
res += fscanf(in , "%f", &recs[n].t );
recs = realloc(recs, (n+2)*68);
if(!recs){
printf("Error for second recs");
return 0;
}
n++;
}while(res == 5);
我的输入文件:
Germany 8.01.2020 54.24
Romania 1.2.2019 34.55
Banat 5.1.1999 41.66
Region 4.5.2023 51.71
Idk 12.11.1967 91.981
我的输出:
Germany 8 1 2020 54.240002
Romania 1 2 2019 34.549999
Banat 5 1 1999 41.660000
Region 4 5 2023 51.709999
Idk 12 11 1967 91.981003
所以基本上我的问题是为什么 fscanf 读取 51.709999 而不是 51.71 例如。
解决方案
最后,我的问题不是理解背后的浮点数学。所以遇到这个问题的任何人都应该对此有所了解,或者简单地打印浮点数的第一个小数。
推荐阅读
- python - 在 python PyFCM 上声明 Firebase 通知 TTL
- python - 为什么这个 for for 循环在 python 中只运行一次并部分运行以下所有时间?
- pointers - 如何将用户输入存储到 char * 类型的变量中?
- java - 为什么我不能在这个数组中添加一个对象?
- css - 带有变换的悬停效果:scale() 影响页面上其他地方的文本
- elasticsearch - 批量导入json文件“未指定url”的弹性搜索curl命令错误
- c++ - c++ 似乎无法过滤掉我的递归目录列表程序中的点文件
- javascript - 在 Material UI 中,和号后面的空格和没有空格有什么区别?
- location - 在用户位置初始化 mapbox 地图
- c - 生产者消费者问题问题使用 Linux 线程