Python как округлить число без округления последней цифры
x = 10.19
print(round(x, 1))
Ответ будет 10.2.
Как сделать так, чтобы ответ был 10.1?
То есть не округлить, а обрезать.
Ответы (6 шт):
Автор решения: Soama
→ Ссылка
У функции round() есть ещё один аргумент. Он показывает до какого количества знаков после запятой следует округлять:
round(10.19, 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