Вот пример, чтобы объяснить, о чем я:
c = Decimal(10) / Decimal(3)
c = Decimal(10) / Decimal(2)
Если я сделаю это, выведите c, неточные и округленные флаги будут подняты. Хотя результат точный. Разве флаги не должны быть атрибутами чисел, а не контекстом? Эта проблема особенно очевидна, когда я программирую длинные вычисления с использованием стека.
Чтобы задать более содержательный вопрос: как мне правильно с этим справиться?
Кажется, я должен отслеживать все вручную. Если я уберу флажки перед вычислениями, я потеряю некоторую информацию о числах, вычисленных ранее. Который теперь может показаться точным. Это особенно раздражает при работе с числами, такими как 1.0000000154342.
Для критически важных приложений было бы очень приятно быть уверенным в том, что является точным, а что нет. Также было бы неплохо не поднимать неправильные флаги только потому, что это выглядит плохо.
Это все еще предполагает, что за этим есть хорошее обоснование, которого я не понял. Я был бы благодарен за объяснение.