Python как округлить число без округления последней цифры

x = 10.19
print(round(x, 1))

Ответ будет 10.2.

Как сделать так, чтобы ответ был 10.1?
То есть не округлить, а обрезать.


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

Автор решения: Soama

У функции round() есть ещё один аргумент. Он показывает до какого количества знаков после запятой следует округлять:

round(10.19, 1)
→ Ссылка
Автор решения: Soama
float("{0:.1f}".format(10.19))
10.1
→ Ссылка
Автор решения: DGDays

Самый простой вариант:

x = float(input())   # Запрос ввода числа
res = x * 100 // 10  # Умножаем на 100 и делим на 10 чтобы откинуть остаток
res = res / 10       # Делим на 10 чтобы получилось нужно число
print(res)
→ Ссылка
Автор решения: CodeRed
x = float(str(x).split('.')[0] + '.' + str(x).split('.')[1][:1]) # [:1]-количество знаков после .
→ Ссылка
Автор решения: CrazyElf

Как вариант до кучи. Чуть понятнее, мне кажется, чем несколько делений.

import math

x = 10.19
print(math.floor(x * 10) / 10)
→ Ссылка
Автор решения: MacClane

Округлить число x до одной десятой без округления последней цифры

    x = 10.19
    rounded_x = float(str(x)[:4])
    print(rounded_x)

    результат:
    10.1

Сам сегодня голову сломал

Ещё вариант с использованием библиотеки Decimal С контролируемым округлением в меньшую сторону

     from decimal import Decimal, ROUND_DOWN
   ...: 
   ...: x = Decimal(10.1997)
   ...: formatted_x = x.quantize(Decimal('0.0'), rounding=ROUND_DOWN)
   ...: print(formatted_x)
10.1

docs_decimal_round

→ Ссылка