Как сделать так,чтобы round() не округлял последнюю цифру? (Python)

Например, у меня есть число 1.66666666666.

Мне нужно округлить его до 5-ого знака после запятой без округления последнего, чтобы конечный результат выглядел не так: 1,66667, а так: 1,66666!

(Интересует не конкретный случай,а все возможные, с любым количеством знаков после запятой.)


Ответы (2 шт):

Автор решения: S. Nick

как вариант:

n = 1.66666666666

n1, n2 = str(n).split('.')

print(float(f'{n1}.{n2[:5]}'))
→ Ссылка
Автор решения: MaxU

Можно воспользоваться форматированием - преобразуйте число в строку, но используйте на один знак после запятой больше чем вам нужно и обрубите последний символ:

num = 1.66666666666

num_str = f"{num:.6f}"[:-1]

результат:

In [81]: num_str
Out[81]: '1.66666'

NOTE: но более правильно сделать так, как посоветовал @EzikBro в первом комментарии.

→ Ссылка