Текстовый калькулятор на Python. Как реализовать поддержку деления?
Нужно написать калькулятор для строковых выражений вида '<число> <операция> <число>'. Возвращать он должен также в словесном виде. Например,
a = input("двадцать пять плюс тринадцать") -> "тридцать восемь". Числа берутся от 0 до 100. С вычитанием, сложением и умножением вопросов не возникло, а вот с реализацией деления есть проблемы, ибо нужно осуществить точность до миллионных долей, округление, период (в случае если 1/3 например). Может есть у кого-то идеи как покомпактнее это можно сделать?
Да, также уточню, что на вход программы могут подаваться не только целые числа, то есть выглядеть это может и так например:
a = input("сорок один и тридцать одна сотая разделить на семнадцать")
-> "два и сорок три сотых"
limurmurmur, ну а реализацию остальных операций тоже делали с учетом десятичных? Как вообще реализовали? Не показали ни кода, ни попыток реализовать деление.
На вопрос «как сделать» отвечает документация и поиск в интернет.
Тут отвечают на вопросы «почему я сделал, как в документации, а оно не работает. Поискал в интернет, вот запросы, в ответах не нашел. Что я делаю не так?»
Покажите, как вы пробовали решить проблему, приведите код попытки (пусть неудачной), опишите, как запускали, что ожидали и что получилось.
За готовыми решениями - на фриланс. В текущем виде это не вопрос, а задание. Нарушен п.5.12 Регламента.
>>> # 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')