Целочисленное деление возвращает тип float

В коде, в выделенной процедуре(24 строки), нужно полученную дату в формате unixtime преобразовать в целое число - определённый час по расписанию.

def post(date):  # date = 1637855378
    ...
    post_date = (date % hours(24)) // hours() # hours(t)=t*3600
    ...
    print(f'{post_date + 3}:00, {type(post_date)}')

Иногда возвращает тип float, но в основном int

>>> 15.0:00, <class 'float'>

Троеточие - то, что не влияет на результат. Я конечно понимаю, что это можно исправить через int(post_date), но хочу разобраться в ошибке. Код работает онлайн на Heroku(возможно у них там какие-то проблемы, но я очень сомневаюсь) такая "ошибка" начала выходить пару дней назад(23 ноября, но могло и раньше).


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

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

Оператор // при работе с целыми числами int возвращает int, а при работе с float возвращает float

→ Ссылка