Accidently I think I have an answer for you… just messed up with it a little bit myself.
So digging through the julia base I think this is what you are looking for:
sprintf_exact(x) = sprint(0,print,x; env = (:compact => false))
for your simple example it works.
lets validate it:
julia> d = Dict(:a => √2, :b => fill(1/3, 3), :c => 1f0);
julia> f = eval(parse(sprintf_exact(d)));
julia> f === d
false
julia> f == d
true