Потому, что операция / в Python - вещественное деление. А вещественное число выводится с дробной частью.
Хочешь целочисленное деление в котором дробной части нет - используй //
Python использует двоичную систему счисления для представления чисел с плавающей точкой. Поэтому при выводе чисел с плавающей точкой могут возникать неточности из-за округления. В вашем случае, Python выдает число с плавающей точкой, потому что результат деления (h-b)/(a-b) является числом с плавающей точкой. Если вы хотите получить целое число, то можно использовать функцию round() для округления до ближайшего целого числа:
h = int(input())
a = int(input())
b = int(input())
n = round((h-b)/(a-b))
print