C中的浮点数组

sfa*_*tor 1 c floating-point file-io

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

Jam*_*lis 17

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

有关详细信息,请参阅文章"每个计算机科学家应该知道的关于浮点运算的内容" [PDF链接].

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


Jim*_*uck 11

你看到的是正确的,因为浮点不能完全代表许多实数.这是必须阅读的:每个计算机科学家应该知道的关于浮点运算的内容