Выводится много цифр после запятой

у меня есть команда

@dp.message_handler(commands=['energydrink', 'энергетик'], chat_type=[types.ChatType.SUPERGROUP, types.ChatType.GROUP])
async def drinkenergy(message: types.Message):
    number = random.uniform(1, 5)
    number = float('{:.1f}'.format(number))
    db.add_energetik(number, message.from_user.id)
    total_liters = db.get_totalenergetik(message.from_user.id) # здесь был лишний аргумент
    await bot.send_message(message.chat.id, f'@{message.from_user.username}, ты выпил(а) {number} л. энергетика.\nВыпито всего: {total_liters[0]} л.', reply_markup=deletemarkup)

И в db.py есть:

def get_totalenergetik(self, user_id):
            with self.connection:
                return self.cursor.execute("SELECT `number` FROM `users` WHERE `user_id` = ?;", (user_id, )).fetchall() ### UPD

И бывает случаются такие приколы: введите сюда описание изображения

Как это можно решить?

Ещё из-за этого в базе данных такой прикол иногда тоже бывает: введите сюда описание изображения


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

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

Используйте округление до приемлемого количества знаков после запятой при форматировании. Например,

total_liters = [70.6999999999999999]
print(f'Выпито всего: {total_liters[0]:.1f} л.')  # .1 - один знак после запятой

выведет Выпито всего: 70.7 л.

→ Ссылка