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`} *)