我正在开发一个代码,我必须在文本文件中一次加载存储在每一行中的浮点值...我使用 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/