Точные математические вычисления Python в интерпретаторе и скрипте без постоянного ввода десятичного модуляPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Точные математические вычисления Python в интерпретаторе и скрипте без постоянного ввода десятичного модуля

Сообщение Anonymous »

Я заметил, что математические операции в Python не такие точные, как раньше, особенно те, которые связаны с числами с плавающей запятой. Я знаю, что это связано с природой представления двоичных чисел, и мы можем решить эту проблему, выполнив:

Код: Выделить всё

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 в качестве калькулятора или альтернативу Matlab. Писать еще много вещей для быстрого расчета не удобно. Настройка контекста для decimal модуля также требует написания «Decimal» перед числом.
Этот вопрос пятилетней давности был посвящен сценарию, а не работе внутри интерпретатора. Я также попробовал пример кода, но он не работает должным образом.
Есть ли быстрый и грязный способ заставить python выполнять 0.1 + 0.2 иметь тот же результат, что и float( Decimal('0.1') + Decimal('0.2'))?
Его также следует применять к другим математическим операциям, таким как **, и сравнению сравнения на равенство, например == .

Подробнее здесь: https://stackoverflow.com/questions/756 ... ping-decim
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»