我总是听说浮点数存在舍入误差,因此,必须使用decimal类型来代替浮点数来进行金融运算。他们所说的finance是什么意思?他们是否只考虑金钱,而金、铜、铁、蜂蜜、木头、毛料、谷类等仍须以实数计算,抑或任何物质资产均须以小数计算?因为你知道,如果你损失了.0000000004美分,可能不会像你损失同等数量的实际物质价值那样可怕。我只是不喜欢这种双重标准。
发布于 2013-11-07 21:46:08
“必须使用小数类型来代替金融浮点”混淆了正交的概念。对于金融应用程序来说,无论小数值是用定点表示还是用浮点表示,二进制通常都不是一个好主意。Decimal floating-point是为金融计算而设计的应用程序,它对它很有用。你应该停止听信那些混淆了这些概念的人。
财务计算中的舍入规则是标准化的;标准表示与小数记数法(one example)相关的规则。因此,用于执行这些计算的计算系统应该能够表示小数分数值。这不是一个.00000004美分是一个小数目的问题,这是一个应用强制性标准的问题。
换句话说,小数和定点都会导致不准确。加法在定点中恰好是精确的,只要它不溢出,但是定点乘法并不比浮点乘法更精确。同样,十进制不能精确地表示1/3,而二进制也不能。
小数和/或定点经常被用来与其他人一样具有相同的不准确性,而不是为了消除不准确性。(“每个人”,包括人类用笔和纸计算十进制)
发布于 2013-11-07 21:43:55
如果小数的精确表示比其他小数的精确表示更重要,请使用小数算术。
如果小数点后有固定位数,则使用固定点。如果不是,则使用浮点数。
通常,二进制浮点数更高效、更紧凑,因此如果小数小数的舍入不比其他计算的舍入更不可取,请使用这种方法。
用于金融的小数并不总是适用的。例如,使用带对数函数的浮点类型可以更快、更简单地进行一些复合利率估计。
铁是否以带有小数的单位出现,以及在涉及这些小数的计算中需要精确性吗?
https://stackoverflow.com/questions/19834813
复制相似问题