У вас i - целое, а x - вещественное. При делении целого на целое идет деление нацело (с округлением вниз до целого). При делении целого на вещественное или вещественного на целое - результат вещественное.
Если лишние скобки поставить, то у вас сначала происходит деление нацело (2*i+1)/(2*i)
, а потом домножение на вещественное.
Без скобочек операции выполняются слева направо - a *(-1*x)*(2*i+1)
даст вещественный результат, который точно поделится.
Если вы в скобочках приведете к вещественному, то у вас тоже все заработает: a = a *(-1*x)*((2*i+1.0)/(2*i));