浮点数中有效位数和精度损失之间的关系是什么?

Moa*_*Plz 5 floating-point floating-point-precision

所以我一直试图围绕浮点数中有效数字的数量与精度的相对损失之间的关系进行包装,但我似乎无法理解它.我之前正在阅读一篇文章说要做以下事情:

  1. 将float设置为值2147483647.您将看到它的值实际为2147483648
  2. 从浮点数中减去64,您将看到操作正确
  3. 从浮点数中减去65,您将看到实际上现在有2147483520,这意味着它实际上减去了128.

那么为什么这个128有10位有效数字?我理解如何存储浮点数(符号为1位,指数为8位,尾数为23位)并且如果假设所有整数将自动在浮点数据结构中找到确切的住宅,则了解如何丢失精度,但我不知道了解128来自哪里.我的直觉告诉我,我走在正确的轨道上,但我希望有人能够为我清除这一点.

我最初认为可能的浮点数之间的距离是2 ^(n-1),其中n是有效数字的数量,但这并不成立.

谢谢!

Rud*_*uis 3

两个相邻浮点数之间的“距离”为2^(1-n+e),其中e是真指数,n是尾数(又称有效数)中的位数。存储的指数不是真正的指数,它有偏差。对于 IEEE-754 浮点数,该值为127(对于标准化数字)。因此,正如 Peter O 所说,距离取决于指数。