所以我一直试图围绕浮点数中有效数字的数量与精度的相对损失之间的关系,但我似乎无法理解它。我之前正在阅读一篇文章,说要执行以下操作:
- 设置一个浮点数为 2147483647。你会看到它的值实际上是 2147483648
- 从浮点数中减去64,你会看到操作是正确的
- 从浮点数中减去 65,你会看到你现在实际上有 2147483520,这意味着它实际上减去了 128。
那么当有 10 位有效数字时,为什么是 128 呢?我了解浮点数是如何存储的(1 位用于符号,8 位用于指数,23 位用于尾数)并且了解如果您假设所有整数都会自动找到浮点数据结构中的确切位置,您将如何失去精度,但我不知道不明白 128 是从哪里来的。我的直觉告诉我,我走在正确的轨道上,但我希望有人能够为我解决这个问题。
我最初认为可能的浮点数之间的距离是 2 ^ (n-1) 其中 n 是有效数字的数量,但这并不成立。
谢谢!