Много ответов на вопросы о точности float
и double
рекомендуйте использование decimal
для денежных сумм. Это работает, потому что сегодня все валюты являются десятичными кроме MGA и MRO, и у этого есть подблоки 1/5, так являются все еще десятично-дружественными.
Но что относительно программного обеспечения, используемого на американских фондовых рынках, когда цены были в 1/16ths доллара? Точность двоичных типов данных не была бы проблемой, правильно?
Идущий далее назад, как пред1971 британское бухгалтерское программное обеспечение имело дело с фунтами, шиллингами и пенсами? Сделал их версии КОБОЛа, имеют специальное предложение PIC
пункт для него? Все суммы были сохранены в пенсах? Как переход на метрическую систему мер был обработан?
В PL/I есть тип специально для британской валюты - не знаю, как в COBOL. Британская валюта в свое время включала фартинги, или четверть пенни; однако я не уверен, что компьютеры имели дело с ними, только с полупенни или ха-пенни.
В точном бухгалтерском учете обычно используются специальные типы - для точного представления десятичных дробей. Новый стандарт IEEE 754 поддерживает десятичные числа с плавающей точкой, а некоторые чипы (в частности, IBM pSeries) имеют такую поддержку аппаратно.
1/16 можно представить четырьмя цифрами как .0625. Для дробей этого типа вы просто добавляете дополнительные десятичные знаки.