Код: Выделить всё
from decimal import Decimal
a = Decimal('0.1') + Decimal('0.2')
Код: Выделить всё
def func(a, b, operator):
a_ = Decimal('{}'.format(a))
b_ = Decimal('{}'.format(b))
return eval('float(a_ {} b_)'.format(operator))
func(0.1, 0.2, '+') # will return 0.3
Этот вопрос пятилетней давности был посвящен сценарию, а не работе внутри интерпретатора. Я также попробовал пример кода, но он не работает должным образом.
Есть ли быстрый и грязный способ заставить python выполнять 0.1 + 0.2 иметь тот же результат, что и float( Decimal('0.1') + Decimal('0.2'))?
Его также следует применять к другим математическим операциям, таким как **, и сравнению сравнения на равенство, например == .
Подробнее здесь: https://stackoverflow.com/questions/756 ... ping-decim