Re: Outputting to file with fixed decimal digits
- To: mathgroup at smc.vnet.net
- Subject: [mg75271] Re: Outputting to file with fixed decimal digits
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Mon, 23 Apr 2007 05:39:05 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <f0ekbt$pnn$1@smc.vnet.net>
actuary at mchsi.com wrote:
> Hello:
>
> I'm trying to create a file that becomes input to another software
> package. I need to output real numbers with a fixed number of decimal
> digits with spaces separating the numbers that I write to the file.
>
> I've searched this group for assistance on my question and couldn't
> find anything dealing with outputting to a file.
>
> Help would be greatly appreciated.
>
> Larry
>
Depending on how you wish (or must) handle the creation of the file, you
could use *Export* and *NumberForm*. The following should help you to
start. The symbol expr holds some toy data as an array of numbers
(In[1]), then is is converted in the form of a list of strings (In[2])
that is going to be exported in a text file (In[3]). The file is read
from within Mathematica to check its format (In[4]).
In[1]:=
expr = {{1.234567987654*^6, -34.3892839, 898890.7348327,
-8.748328494823489*^8}, {124567.98764, -8934.3892839, 89890.7348327,
-8.78907284948235*^9}}
Out[1]=
6 8
{{1.23457 10 , -34.3893, 898891., -8.74833 10 },
9
{124568., -8934.39, 89890.7, -8.78907 10 }}
In[2]:=
data = (StringReplace[#1, Characters["{,}"] -> ""] & ) /@
(ToString[NumberForm[#1, {10, 2}, NumberPadding -> {"", "0"},
ExponentFunction -> (Null & )]] & ) /@ expr
Out[2]=
{1234567.99 -34.39 898890.73 -874832849.50,
124567.99 -8934.39 89890.73 -8789072849.00}
In[3]:=
Export["C:\\myfile.txt", data, "Lines"]
Out[3]=
C:\myfile.txt
In[4]:=
!! C:\\myfile.txt
From In[4]:=
6 8
1.23457 10 - 34.39 898891. - 8.74833 10
9
124568. - 8934.39 89890.7 - 8.78907 10
Regards,
Jean-Marc