Do you really need things like 2.0437`4, or is it enough to double the 2.0437 car? If the latter, then you can do something like
N[SetPrecision[values,6]]
to make machines double, which will (basically) show six decimal digits.
A possible advantage is its reading. Now your array will be doubled by the machine, and therefore packed. I'm not sure if Get or Import is automatically packaged, but Developer`ToPackedArray will do this.
--- edit 2011-02-11 ---
Now that I saw what could go wrong ...
Here is an example using your later input and a few others that I hope will be representative.
aa = {7.469702041097916467293771347613073888816285869`15.\ 954589770191005*^-51, 5555.22222222222222222223, .00000000002222222222222222222222222227777777777777, N[E, 22]^33}
First converted to a string. In fact, this may be all you really need to save to a file. I use NumberForm, but with a custom formatting function (trimmed by and large from the documentation pages).
In[39]:= InputForm[ToString[ NumberForm[N[aa], 6, NumberFormat :> (If[#3 != "", Row[{#1, "*^", #3}], #1] &)]]] Out[39]//InputForm= "{7.4697*^-51, 5555.22, 2.22222*^-11, 2.14644*^14}"
Note that expression conversion works just fine.
In[40]:= InputForm[ToExpression[ ToString[NumberForm[N[aa], 6, NumberFormat :> (If[#3 != "", Row[{#1, "*^", #3}], #1] &)]]]] Out[40]
--- end of editing ---
Daniel Lichtblow Wolfram Research