Нет - это не баг а фича. В PHP существует несколько операций округления
floor — Округляет дробь в меньшую сторону
ceil — Округляет дробь в большую сторону
и round — Округляет число типа float c указанной точностью
Hemul GM, Фича в том что это не баг и функция floor работает как ей и нужно работать и это не проблема конкретного языка вот именно прикол в том что и во многих других языках происходит нечто подобное все зависит от точности.
floor() - округление "отбрасывает дробную часть" при положительном аргументе, и округляет в меньшую сторону при отрицательном. То есть [ floor(-1.65/0.55) = -3 ], а [ floor(1.65/0.55) = 2 ]
round() - округляет по математическим правилам
ceil() - округляет в большую сторону