因此,我一直试图绕过浮点数中的有效位数与相对精度损失之间的关系,但是我似乎无法理解这一点。我之前读过一篇文章,说要执行以下操作:
那么,为什么有10位有效数字的情况下却是128位呢?我了解浮点数的存储方式(1位为符号,8位为指数,尾数为23位),并且如果您假设所有整数都将自动在float数据结构中找到精确的原点,那么您将失去精度。不了解128的来源。我的直觉告诉我,我处在正确的轨道上,但我希望有人能够为我解决这个问题。
最初,我认为可能的浮点数之间的距离为2 ^(n-1),其中n是有效数字的数量,但这并不成立。
谢谢!
最佳答案
两个相邻浮点数之间的“距离”为2 ^(1-n + e),其中e为真指数,n为尾数位数(AKA有效数字)。存储的指数不是真实的指数,它具有偏差。对于IEEE-754浮点数,该值为127(对于归一化的数字)。因此,正如彼得·奥(Peter O)所说,距离取决于指数。
关于floating-point - 有效数字与 float 精度损失之间的关系是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7005850/