c - C中的 float 组

标签 c file-io floating-point

我正在开发一个代码,我必须在文本文件中一次加载存储在每一行中的浮点值...我使用 fscanf() 将这些数据中的每一个加载到一个 float 组中...但是我发现 float 以不同的方式存储,例如 407.18 存储为 407.179993,414.35 存储为 414.350006...现在我被卡住了,因为以文件中的形式存储数字是绝对重要的,但在这里尽管本质上相同,但似乎有所不同....我如何获取以原始形式存储的数字?

最佳答案

如果以文件中的形式存储数字绝对重要,不要使用浮点值。并非所有以 10 为基数的分数都可以用二进制精确表示。

详情请引用文章"What Every Computer Scientist Should Know About Floating-Point Arithmetic" [PDF 链接]。

您应该以字符串形式或缩放整数形式存储数字。

关于c - C中的 float 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1853734/

相关文章:

C - 无法向前迭代第二个字符串

在单个端口上配置多个 UDP 套接字

c - 如何在键盘输入时立即停止C while循环而不继续下一步?

C 选择 if else

c# - 如何使用 C# 显示文件保存到受限位置的 UAC 提示?

C++追加到字符串并写入文件

string - 为什么我来自BufReader::lines的行不匹配?

c++ - 使用浮点/双除法比较可还原分数

linux - 比较两个数字,但如果条件不能正常工作

c - 如何将两个符号相反的 float 相加?