4

在过去的三天里,我一直在尝试了解浮点表示和定点表示之间的确切区别。我对阅读材料感到困惑,我无法决定什么是对的,什么是错的。

问题之一是少数技术术语的含义,如“精度”、“尾数”、“非规范化”、“下溢”等。

任何人都可以举例说明差异吗?

到目前为止,我能够找到(并且能够清楚地理解)的要点如下:-

浮点数 -
1.优势 提供非常大的范围2.
劣势大数

定点 -
1.优势数字被精确表示 (在涉及“金钱”时使用)
2.劣势提供非常有限的范围

但我知道还有很多差异(主要是优点和缺点)。任何人都可以列出它们并进行解释吗?

4

4 回答 4

5

浮点背后的技术需要很长时间才能习惯。我不会在这里详细介绍。

简单地说,浮点数实现了高域(从接近零的非常小的数字到非常高的数字,有时甚至高于宇宙中的原子数)。浮点数通过保持相对误差常数。即数字将在固定的小数位数后开始四舍五入(这是一种简化,但有助于理解原理)。这与大多数自然科学中的“重要数字”概念非常相似。然而,这意味着浮点数总是以某种方式四舍五入。如果您将一个非常小的数字添加到一个非常大的数字中,那么小数字将被截断,而大数字将保持不变。当小数字低于阈值时会发生这种情况。如果您添加许多数字,有时可能需要先对它们进行排序,然后在大数字之前添加小数字。还需要考虑数值稳定性的概念,即算法将如何因舍入而偏离正确结果。

另一方面,定点表示将始终具有相同的绝对误差。如果您存储小数点后 4 位的货币,您就知道您的数据最多会偏离 0.00005 美分。但是,如果您添加数据,则此错误可能会再次累积,但此规则与浮点规则有很大不同。

除非您正在从事繁重的数字工作,否则可能不应该考虑这些问题。大多数情况下,浮点数和定点数都可以正常工作,只要小心谨慎(即永远不要==在浮点数或定点数上使用。但是,比较它们的正确方法对两者都不同)。AFAIK 浮点数也更常用于科学工作,因为大多数情况下科学家会接受数字培训,知道如何处理四舍五入并且只对相对精确的结果感兴趣。固定点用于财务,每个四舍五入都必须在某个地方进行核算和存储(通常银行只会保留四舍五入的半微分),因此您必须很好地控制绝对误差,以便以后能够解释它。

于 2012-03-10T13:17:18.703 回答
2

浮点数适用于浮点数,即当您需要在不同尺度上表示数字时。你牺牲精度来获得规模范围。

另一方面,定点数仅适用于固定比例(如果缩放过多,它们会溢出或不足),但只要保持在所需的比例范围内,就会获得精度。

简而言之:如果您乘以很多但不添加不同比例的数量,请使用浮点数。如果您添加很多但不相乘,请使用固定点。

(定点用例的一个很好的例子是与货币有关的任何事物:本质上,您可以将单位固定为美分或百分之一美分,并使您的所有货币值都是该单位的整数。)

于 2012-03-10T13:04:54.150 回答
1

定点数可以按线性时间排序。不动点也是明确的;在特定的定点协议中可以表示的每个数值只有一种表示形式,而浮点则不是这样。

浮点数具有更广泛的可表示范围。这也是模棱两可的。浮点数可以在 NlogN 时间内排序。

于 2015-04-25T21:44:08.440 回答
0

定点是整数格式的浮点数表示。所以可以像对整数一样对数字应用运算。使用它的优点是浮点运算成本更高(处理能力)。较新的处理器具有专用的 FPU(浮点单元)来处理它。

所以定点算法是在处理能力有限的情况下,一点点精度损失不会造成严重破坏。

于 2017-12-05T18:08:37.907 回答