Я хочу ограничить точность моего поплавка и использовать его как точное значение для следующих операций, но я делаю что-то неправильно с десятичным модулем. ВыходДесятичная точность и округление Python
from decimal import *
factor = 350/float(255)
# Settings
getcontext().prec = 1
getcontext().rounding = ROUND_UP
print Decimal(factor)
Python: 1,372549019607843145962533526471816003322601318359375
Ожидаемое и хотел результат: 1,4
использовать 'np.round'. – Julien
Простое создание объекта «Десятичный» не округляется до текущего контекста. Для этого есть трюк: вы можете применить унарный плюс, как в '+ Decimal (factor)'. Сказав это, это все равно не будет делать то, что вы хотите: 'prec' означает общее количество значимых цифр, а не количество мест после точки. Поэтому в этом случае вам нужно «prec = 2». –
Вы также можете посмотреть в методе 'Десятичный.quantize'. –