如何在软件中表示非十进制货币?

时间:2010-06-13 06:02:58

标签: decimal currency

有关floatdouble准确性问题的大量答案建议使用decimal作为货币金额。这是有效的,因为今天所有货币都是小数除了MGAMRO,而那些有1/5的子单位仍然是十进制的。

但是当价格是美元的1/16时,美国股票市场上使用的软件呢?二进制数据类型的准确性不会成为问题,对吗?

更进一步说,1971年以前的英国会计软件是如何处理英镑,先令和便士的?他们的COBOL版本是否有一个特殊的PIC条款?所有金额都存储在便士中吗?如何处理十进制?

3 个答案:

答案 0 :(得分:3)

PL /我有专门针对英国货币的类型 - 我不知道COBOL。英国货币曾一度包含了一分钱或四分之一便士;我不确定计算机是否必须处理这些计算机,只需要半便士或半便士。

准确的会计通常使用特殊类型 - 完全代表小数。新的IEEE 754支持浮点小数,一些芯片(特别是IBM pSeries)在硬件中有这样的支持。

答案 1 :(得分:1)

COBOL可以做到,例如,图9(4)D88D6 DISPLAY-ST参见第http://www.computinghistory.org.uk/downloads/10924页117

答案 2 :(得分:0)

1/16可以用四位数字表示为.0625。对于该类型的分数,您只需添加一些额外的小数位。