You are casting the result of the division. You need to cast at least one component in each division (personally I would cast all four numbers). Otherwise you do the integer division, with a resulting integer, and then cast that integer to a float. Not, I think, what you intend.
Actually, I don't think you should use static casts at all, just normal casts:
((float) a / (float) b) * ((float) c / (float) d)