了解浮点精度

时间:2012-08-21 01:16:06

标签: c++ floating-point floating-point-precision

情况是这样的:

  1. 可表示的浮点值在零附近的实数行中最密集?
  2. 当数字线偏离零时,可表示的浮点值会变得更稀疏(指数式?)?
  3. 如果以上两个都是真的,那是否意味着精度更远离零?
  4. 总体问题:精确度是否以某种方式引用或取决于您可以(准确地)表示的数字密度

3 个答案:

答案 0 :(得分:8)

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

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

高度推荐论文What Every Computer Scientist Should Know About Floating Point Arithmetic,其中涵盖了这一点以及更多内容。

答案 1 :(得分:5)

浮点数基本上以科学计数法存储。只要它们被标准化,无论您在数字线上的哪个位置,它们始终具有相同数量的有效数字。

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

当你非常接近0并且指数达到最低点时,浮点数变为非规范化。在这一点上,他们有一个额外的重要数字,因此更精确。

答案 2 :(得分:0)

数目:

  1. 可表示的浮点值在零附近的实数行中最密集? 的
  2. 当数字线偏离零时,可表示的浮点值会变得更稀疏(指数式?)? 的
  3. 如果以上两个都是真的,那是否意味着精度 <0>更远离零? 的
  4. 总体问题:精确度是否以某种方式引用或取决于您可以(准确地)表示的数字密度

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

    我还建议What Every Computer Scientist Should Know About Floating Point Arithmetic