有关float
和double
准确性问题的大量答案建议使用decimal
作为货币金额。这是有效的,因为今天所有货币都是小数除了MGA和MRO,而那些有1/5的子单位仍然是十进制的。
但是当价格是美元的1/16时,美国股票市场上使用的软件呢?二进制数据类型的准确性不会成为问题,对吗?
更进一步说,1971年以前的英国会计软件是如何处理英镑,先令和便士的?他们的COBOL版本是否有一个特殊的PIC
条款?所有金额都存储在便士中吗?如何处理十进制?
答案 0 :(得分:3)
准确的会计通常使用特殊类型 - 完全代表小数。新的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。对于该类型的分数,您只需添加一些额外的小数位。