Re: String-to-Number Conversion Precision
- To: mathgroup at smc.vnet.net
- Subject: [mg112369] Re: String-to-Number Conversion Precision
- From: Arnoud Buzing <arnoudb at wolfram.com>
- Date: Sat, 11 Sep 2010 05:44:10 -0400 (EDT)
ToString can take a second argument which specifies how to format an expression: Grid[ Map[ {#, FullForm[ToString[N[Pi], #]]} &, {CForm, FortranForm, InputForm, MathMLForm, OutputForm, StandardForm, TeXForm,TraditionalForm}], Alignment -> Left] In your specific case, this may suit your needs: In[]:= string = "1.867524468"; string === ToString[ToExpression[string, InputForm], InputForm] Out[]= True Like ToString, ToExpression also takes a second argument which helps to interpret a string and make an expression out of it. On 9/10/10 3:50 AM, Ben wrote: > I'm reading real numbers from a file and I'm trying to convert them > from string format (with arbitrary precision) to real values with the > same precision as given in the strings. > > For example, when I convert "1.867524468", I want the result to be set > to precision 10. Instead, I get the following. > > In[1]:= string = "1.867524468" > Out[1]:= "1.867524468" > > In[2]:= x = ToExpression[string] > Out[2]:= 1.86752 > > The last 4-digits get cut off. This is fine for when I do math with > the number because the extra digits are still stored, but not when I > want to rewrite the number to a different file. When I convert the > number back to a string for file output, the last 4-digits remain > lost. > > In[3]:= ToString[x] > Out[3]:= "1.86752" > > Is there a function or formula I can use to automatically set the > precision of these numbers to their precision in the string? Thanks. >