# equation solving – Solve[] arbitrarily adding orders of magnitude which cancel?

Define the variables

``````m0 = .1349766;
mp = .13957018;
mX = (2 mp + 3 m0)/2;
``````

Now suppose we wish to solve the following equation for equation `Ep`:

``````sols = Solve((2 E0 Ep - 4 (E0 + Ep) mX + 4 mX^2 + m0^2)/(Sqrt(Ep^2 - mp^2) Sqrt(E0^2 - m0^2)) == 1, Ep)
``````

Then, Mathematica returns

``````{{Ep -> (1.07446*10^47 + E0 (-4.59436*10^47 + 4.42011*10^47 E0) -  0.5 Sqrt(-3.79456*10^92 + E0 (2.32699*10^93 + E0 (1.73795*10^94 + E0 (-1.27726*10^95 + 1.89274*10^95 E0)))))/(3.05309*10^47 + E0 (-8.84022*10^47 + 4.84611*10^47 E0))},
{Ep -> (1.07446*10^47 + E0 (-4.59436*10^47 + 4.42011*10^47 E0) + 0.5 Sqrt(-3.79456*10^92 + E0 (2.32699*10^93 + E0 (1.73795*10^94 + E0 (-1.27726*10^95 + 1.89274*10^95 E0)))))/(3.05309*10^47 + E0 (-8.84022*10^47 + 4.84611*10^47 E0))}}
``````

which is fine, I guess. But, as you can see, it’s introduced a bunch of factors of $$10^{47}$$ which cancel everywhere. This seems to me to be totally meaningless and a huge hassle especially since none of my parameters are even remotely close to $$10^{47}$$, and `FullSimplify` doesn’t cancel the common factors for some reason.

So I guess my question is, how do I get Mathematica to stop introducing arbitrary factors of huge numbers in `Solve()`?