The main thing to do is follow Bill Simpson's advice about changing decimal fractions such as 0.7 to 7/10. But you can also simplify and speed up your calculations by noting that the double sums can be split into parts:
parms = {p1 -> 6/10 - x 55/100,
p2 -> 7/10 - x 5/10,
p3 -> 9/10 - x 8/10,
n1 -> 1000,
n2 -> 1001,
n3 -> 1001,
z -> 500};
s1 = Binomial[n1, z] p1^z (1 - p1)^(n1 - z) //. parms;
s21 = Sum[Binomial[n2, n] (1 - p2)^n p2^(n2 - n), {n, 0, z}] //. parms;
s22 = Sum[Binomial[n2, n] (1 - p2)^(n2 - n) p2^n, {n, 0, z}] //. parms;
s31 = Sum[Binomial[n3, m] (1 - p3)^(n3 - m) p3^m, {m, 0, z}] //. parms;
s32 = Sum[Binomial[n3, m] (1 - p3)^m p3^(n3 - m), {m, 0, z}] //. parms;
f = s1 (s21*s31 + s22*s32);
Now you can take the derivative of f
essentially free of any round-off error and solve for the value of x
that makes the derivative equal to zero:
df = D[f, x]
FindRoot[df == 0, {x, 0.3}]
(* {x -> 0.2841121284262152`} *)