c# string format double precision