了解浮点精度

Understanding floating point precision

本文关键字:精度 了解      更新时间:2023-10-16

是否存在以下情况:

  1. 可表示的浮点值在接近零的实数线上最密集
  2. 随着数字线远离零,可表示的浮点值变得越来越稀疏(指数?)
  3. 如果以上两个都是真的,那是否意味着离零的精度更低

总体问题:精度在某种程度上是指还是取决于你能(准确地)表示的数字的密度

术语精度通常指所表示值中的有效位数(位)。因此,精度随表示尾数中的位数(或数字)而变化。与原点的距离没有任何作用。

关于实线上浮点数的密度,你所说的是正确的。但在这种情况下,正确的术语是准确性,而不是精确性。小震级的FP数要比大震级的精确得多。这与整数形成对比,整数在其范围内具有统一的精度。

我强烈推荐每一位计算机科学家应该知道的关于浮点运算的论文,该论文涵盖了这一点以及更多内容。

浮点数基本上是用科学记数法存储的。只要它们被归一化,它们就始终具有相同数量的有效数字,无论你在数字线上的哪个位置。

如果你线性地考虑密度,那么当你接近0时,浮点数的密度会呈指数级增加。

当你非常接近0,并且指数达到它的最低点时,浮点数就会被反规范化。在这一点上,它们有1个额外的有效数字,因此更精确。

可表示的浮点值在接近零的实数线上最密集?

在IEEE 754浮点的完全实现中是的。

然而,在不支持子范数的系统中,零附近存在一个间隙,该间隙大大大于最小非零值和第二小非零值之间的差。

随着数字线远离零,可表示的浮点值变得越来越稀疏(指数?)?

是的,每次值超过2的幂,相邻值之间的差距就会加倍。

如果以上两个都是真的,那是否意味着离零更远的精度更低?

这取决于你如何准确地定义";精度";,人们可以从相对意义("有效数字")或绝对意义("小数位数")来谈论精度。

哪个更合适取决于数字的确切用途。如果将浮点数字用于坐标或时间戳等内容,那么在远离零的情况下,精度的损失往往会成为一个真正的问题。

答案:

  1. 可表示的浮点值在接近零的实数线上最密集?
  2. 随着数字线远离零,可表示的浮点值变得更稀疏(指数?-它以双曲线方式减少)?
  3. 如果以上两个都是真的,那是否意味着离零的精度更低

总体问题:精度在某种程度上是指还是取决于你能(准确地)表示的数字的密度

请参阅https://stackoverflow.com/a/24179424

我还推荐每个计算机科学家应该知道的关于浮点算术的知识