El tema esta en que ni 2 ni 4 son flotantes (son enteros) asi que el 0.5 se pierde, ejemplo simple:
Código:
float x = 2 / 4;
printf("%f\r\n", x);
Usando flotantes:
Código:
float x = 2.0 / 4.0;
printf("%f\r\n", x);
Código:
float x = 2.0 + (2.0 / 4.0) * 1.0 - 2.0 * 2.0;
printf("%f\r\n", x);
C++ still rules