Целочисленное деление возвращает тип 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