浮点背后的技术需要很长时间才能习惯。我不会在这里详细介绍。
简单地说,浮点数实现了高域(从接近零的非常小的数字到非常高的数字,有时甚至高于宇宙中的原子数)。浮点数通过保持相对误差常数。即数字将在固定的小数位数后开始四舍五入(这是一种简化,但有助于理解原理)。这与大多数自然科学中的“重要数字”概念非常相似。然而,这意味着浮点数总是以某种方式四舍五入。如果您将一个非常小的数字添加到一个非常大的数字中,那么小数字将被截断,而大数字将保持不变。当小数字低于阈值时会发生这种情况。如果您添加许多数字,有时可能需要先对它们进行排序,然后在大数字之前添加小数字。还需要考虑数值稳定性的概念,即算法将如何因舍入而偏离正确结果。
另一方面,定点表示将始终具有相同的绝对误差。如果您存储小数点后 4 位的货币,您就知道您的数据最多会偏离 0.00005 美分。但是,如果您添加数据,则此错误可能会再次累积,但此规则与浮点规则有很大不同。
除非您正在从事繁重的数字工作,否则可能不应该考虑这些问题。大多数情况下,浮点数和定点数都可以正常工作,只要小心谨慎(即永远不要==
在浮点数或定点数上使用。但是,比较它们的正确方法对两者都不同)。AFAIK 浮点数也更常用于科学工作,因为大多数情况下科学家会接受数字培训,知道如何处理四舍五入并且只对相对精确的结果感兴趣。固定点用于财务,每个四舍五入都必须在某个地方进行核算和存储(通常银行只会保留四舍五入的半微分),因此您必须很好地控制绝对误差,以便以后能够解释它。