所以我一直试图把浮点数中的有效数字数和精度的相对损失联系起来,但我似乎无法理解。我之前读过一篇文章,上面说要做以下事情:
那么,当有10个有效数字时,为什么是128呢?我理解如何存储浮点数(1位表示符号,8位表示指数,23位表示尾数),并理解如果假设所有整数都会自动在浮动数据结构中找到精确的归属,那么将如何丢失精度,但我不知道128来自何处。我的直觉告诉我,我在正确的轨道上,但我希望有人可以为我澄清这一点。
我最初认为,可能的浮点数之间的距离是2^ (n-1),其中n是有效数字的数目,但这不成立。
谢谢!
发布于 2011-08-10 20:08:25
两个相邻浮点数之间的“距离”为2^(1-n+e),其中e是尾数的真指数,n是尾数(AKA的意义)。存储的指数不是真实的指数,而是有偏差的。对于IEEE-754浮点数,这是127 (对于规范化的数字)。所以,正如彼得·O所说,距离取决于指数。
发布于 2011-08-10 04:24:59
两个浮点数之间的距离取决于指数。指数越小,一个浮点数与下一个浮点数的差值就越小。其次要考虑的是,在浮点数中存储的指数是二进制指数,而不是十进制指数,因此在浮点数情况下,十进制精度比数字的二进制精度更重要。本文件的图9.1很好地解释了这个概念。
https://stackoverflow.com/questions/7005850
复制相似问题