Результатом всегда будет пол дивизиона?
Нет.Результат варьируется, но вариация происходит только для отрицательных значений.
Какое поведение определяется?
Чтобы было ясно, как округлять минимальные числа, а целые - делитьк нулю (усечено)
Для положительных значений они одинаковы
int integerDivisionResultPositive= 125/100;//= 1
double flooringResultPositive= floor(125.0/100.0);//=1.0
Для отрицательных значений это разные значения
int integerDivisionResultNegative= -125/100;//=-1
double flooringResultNegative= floor(-125.0/100.0);//=-2.0