0

我总是听说浮点存在舍入误差,因此必须使用十进制类型来代替金融中的浮点。他们是什么意思finance?他们是否只考虑金钱,而黄金、铜、铁、蜂蜜、木材、羊毛、谷物仍应以实数计算,还是必须始终使用小数类型来计算任何物质资产?因为您知道,如果您损失 0.0000000004 美分,它可能不像您损失相同数量的实际材料价值那么可怕。我只是不喜欢双重标准。

4

2 回答 2

3

“必须使用十进制类型代替金融的浮点数”混淆了正交概念。无论小数值是用定点还是浮点表示,二进制对于金融应用程序来说通常都是一个坏主意。十进制浮点数的设计是为了将金融计算作为一种有用的应用程序。你应该停止听那些混淆这些概念的人。

财务计算中的四舍五入规则是标准化的;标准表达了关于十进制表示法的规则(一个例子)。因此,用于执行这些计算的计算系统应该能够表示十进制小数值。这不是 0.00000004 美分是小数目的问题,而是应用强制性标准的问题。

换句话说,十进制和定点都可能导致不准确。只要不溢出,加法在定点中恰好是精确的,但是定点乘法并不比浮点乘法更精确。同样,十进制不能精确地表示 1/3,而二进制则不能。

小数和/或定点通常用于与其他所有人一样具有相同的不准确性,而不是消除不准确性。(“每个人”,包括人类用笔和纸计算十进制)

于 2013-11-07T13:46:07.833 回答
1

如果小数的精确表示比其他分数的精确表示更重要,请使用十进制算术。

如果小数点后有固定位数,请使用固定点。如果不使用浮点数。

通常,二进制浮点更有效和更紧凑,因此如果小数的舍入与其他计算的舍入相比,则使用它。

财务小数并不总是适用。例如,使用带有对数函数的浮点类型可以更快、更简单地完成一些复合利率估计。

铁是否以带有小数的某些单位出现,并且在涉及这些分数的计算中需要精确性?

于 2013-11-07T13:43:54.977 回答