Вычисление данных с представлением с фиксированной точкой и N десятичных знаков - PullRequest
1 голос
/ 13 апреля 2020

Я пытаюсь сделать несколько исчислений с числами с фиксированной запятой, сохраняя при этом определенную десятичную точность (понимаемую как число цифр после запятой). Скажем, я хочу сохранить две цифры после десятичной точки.

Мне нужно сделать несколько исчислений, таких как

10.00 + 0.01

и получить

10.01

в качестве ответа. Но затем я хочу добавить 100 и получить 110.01 в качестве ответа.

Пока мне удалось попробовать decimal библиотеку :

from decimal import Decimal, getcontext

a = Decimal( '10.0000')
b = Decimal(  '0.0100')
c = Decimal('100.0000')

getcontext().prec=4
a+b    # results in Decimal('10.01')
a+b+c  # results in Decimal('110.0') <- Missing a decimal digit

getcontext().prec=5
a+b    # results in Decimal('10.010') <- Have one extra decimal digit
a+b+c  # results in Decimal('110.01')

Так До сих пор мне удавалось контролировать только общее количество значащих цифр, но не количество десятичных знаков после десятичной точки.

Поэтому вопрос таков: есть ли способ дать свободу количеству значащих цифр, кроме ограничить количество цифр после десятичной точки?

...