Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Округление python 3.7

Maria S Ученик (242), закрыт 1 год назад
Условие
Для округления числа до нужного количества знаков после десятичной точки вы всегда пользовались встроенной функцией round()

Но что-то случилось, и встроенная функция перестала работать, а вам срочно нужно доделать вашу программу.

Для решения проблемы необходимо написать собственную функцию: my_round(), которая будет работать точно так же, как и встроенная round():

def my_round(number, precision):
Необходимо отправить только функцию!

Напомним: функция round(number, precision) получает два аргумента number - вещественное число и precision - точность(до скольки знаков нужно округлить число number).
Например вызов: round(2.12345, 4) возвращает 2.1235(получаем число у которого 4 знака после запятой и к последнему числу +1, т.е после него идет 5-ка).

Важно: при решении задачи нельзя использовать встроенную функцию round()

Формат входных данных
Функция получает на вход вещественное число и целое число(точность)

Формат выходных данных
Функция возвращает округленное число с указанной точностью. Округление происходит по правилам математики.
Лучший ответ
Александр Загуляев Мыслитель (8248) 1 год назад
 def my_round(number, precision): 
k = 10 ** precision
return int(number * k + 0.5) / k
Maria SУченик (242) 1 год назад
благодарю!
Остальные ответы
Грустный Суслик Дэй Мудрец (10376) 1 год назад
 def my_round(number, precision): 
return float(f'{number:.{precision}f}')
Maria SУченик (242) 1 год назад
благодарю!
СергейМастер (2345) 7 месяцев назад
по условию задачи 5 в последнем знаке округляется в большую сторону, приведенная функция "врет"

3.123455 с округлением до 5 знаков после зпт должна вернуть 3.12346, однако возвращает неверно
Сергей Мастер (2345) 7 месяцев назад
>>> round(3.123455, 5)

3.12345
и нет никакого +1 в сторону увеличения...
Похожие вопросы