@limurmurmur

Текстовый калькулятор на Python. Как реализовать поддержку деления?

Нужно написать калькулятор для строковых выражений вида '<число> <операция> <число>'. Возвращать он должен также в словесном виде. Например,
a = input("двадцать пять плюс тринадцать") -> "тридцать восемь". Числа берутся от 0 до 100. С вычитанием, сложением и умножением вопросов не возникло, а вот с реализацией деления есть проблемы, ибо нужно осуществить точность до миллионных долей, округление, период (в случае если 1/3 например). Может есть у кого-то идеи как покомпактнее это можно сделать?
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 3
mayton2019
@mayton2019
Bigdata Engineer
А что здесь думать? Ты же не реализовываешь алгоритмы умножения и деления.
Ты - пользователь Питона. Вот и дели на Питоне и округляй.

Вот если бы ты реализовал 1/3 + 2/3 и получил бы точно единицу вот это было бы
интересно и познавательно.
Ответ написан
Комментировать
LaRN
@LaRN
Senior Developer
Попробуйте использовать тип Decimal.
Как-то так
>>> # Import the Decimal type from the decimal module
>>> from decimal import Decimal

>>> # Values are represented exactly so no rounding error occurs
>>> Decimal("0.1") + Decimal("0.2") == Decimal("0.3")
True

>>> # By default 28 significant figures are preserved
>>> Decimal(1) / Decimal(7)
Decimal('0.1428571428571428571428571429')

>>> # You can change the significant figures if needed
>>> from decimal import getcontext
>>> getcontext().prec = 6  # Use 6 significant figures
>>> Decimal(1) / Decimal(7)
Decimal('0.142857')
Ответ написан
Комментировать
@ShadowShow
Наверное сделай до одной миллионной доли ограничение
div = 1 / 3
if len(str(div)) > 7:
   print(str(div)[:8])
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы