过去三天我一直在努力了解浮点和定点表示之间的确切差异。我很困惑阅读材料,我无法确定什么是对的,什么是错的。
其中一个问题是“精确”,“尾数”,“非规范化”,“下溢”等技术术语的含义。
任何人都可以通过示例给出差异吗?
到目前为止我能够找到的(能够清楚地理解)的要点如下: -
浮点 -
1. 优势提供非常大的范围
2. 缺点关闭大数字
固定点 -
1. 优势数字代表完全(当涉及“钱”时使用)
2. 缺点提供非常有限的范围
但我知道存在很多差异(主要是优点和缺点)。任何人都可以列出解释吗?
答案 0 :(得分:5)
浮点背后的技术需要花费大量时间来适应。我不会在这里详细介绍。
简单地说,浮点实现了高域(从非常小的数字接近零到非常高的数字,有时甚至高于宇宙中的原子数)。浮点通过保持相对错误不变来实现此目的。即在固定的小数位数后,数字将开始舍入(这是一种简化,但有助于理解原理)。这与大多数自然科学的“重要人物”概念非常相似。但是,这意味着浮点数总是以某种方式舍入。如果你向一个非常大的数字添加一个非常小的数字,那么这个小数字就会被截断,并且大数字会保留。当小数字低于阈值时会发生这种情况。如果添加许多数字,有时可能需要先对它们进行排序,然后在较大的数字之前添加小数字。还需要考虑数值稳定性的概念,即算法如何因舍入而偏离正确的结果。
另一方面,定点表示始终具有相同的绝对错误。如果您存储4位小数的货币,您知道您的数据将最多关闭.00005美分。但是,如果添加数据,则此错误可能会再次累积,但此规则与浮点规则有很大不同。
除非您正在进行重型数字工作,否则可能不应考虑这些问题。大多数时候浮点数和定点数都很好,在采取谨慎措施时(即从不对浮点数或固定点数使用==
。然而,比较它们的正确方法对两者都不同) 。 AFAIK浮标在科学工作中也经常使用,因为大多数科学家都会接受数字训练,知道如何处理四舍五入,只对相对精确的结果感兴趣。固定点用于财务,其中每个舍入必须被计算并存储在某处(通常银行将保持圆形半微量),因此您必须非常好地控制绝对误差,以便以后能够解释它
答案 1 :(得分:2)
浮点数适用于浮动点,即需要在不同比例下表示数字时。你牺牲精度来获得规模范围。
另一方面,定点数仅适用于固定比例(如果你将它们缩放得过多,它们会过度或欠载),但只要你保持在所需的比例范围内,你就可以获得精确度。 / p>
简而言之:如果你经常繁殖但不添加不同比例的数字,请使用浮点数。如果你添加很多但不增加,请使用固定点。
(定点用例的一个很好的例子是与货币有关的任何事情:基本上,你可以将你的单位固定为美分或百分之一分,并使所有货币价值成为该单位的整数。 )
答案 2 :(得分:1)
固定的尖头数字可以按线性时间排序。固定点也是 明确的;可以用特定的定点协议表示的每个数值只有一个表示,浮点不是真的。
浮点具有更宽的可表示范围。它也含糊不清。浮点数可以按NlogN时间排序。
答案 3 :(得分:0)
固定点是整数格式的浮点数的表示。因此,操作可以像整数一样应用于数字。 使用它的优点是浮点运算成本更高(处理能力)。较新的处理器具有专用的FPU(浮点单元)来处理它。
因此,定点运算是指处理能力有限,精确度损失不会造成严重破坏。