Я пытаюсь прочитать финансовые данные и сохранить их.Место, где я получаю финансовые данные, хранит данные с невероятной точностью, однако меня интересуют только 5 цифр после десятичной точки.Поэтому я решил использовать t = .quantize (cdecimal.Decimal ('. 00001'), rounding = cdecimal.ROUND_UP) в десятичном формате, который я создаю, но продолжаю получать исключение InvalidOperation.Почему это так?
>>> import cdecimal
>>> c = cdecimal.getcontext()
>>> c.prec = 5
>>> s = '45.2091000080109'
>>> # s = '0.257585003972054' works!
>>> t = cdecimal.Decimal(s).quantize(cdecimal.Decimal('.00001'), rounding=cdecimal.ROUND_UP)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
cdecimal.InvalidOperation: [<class 'cdecimal.InvalidOperation'>]
Почему здесь недопустимая операция?Если я изменю точность до 7 (или выше), это сработает.Если я установлю s как '0.257585003972054' вместо исходного значения, это также работает!Что происходит?
Спасибо!