From: miguelwon on
Hello.

I need to export to a file several numbers with a specific number of
digits on the right of the decimal. I'm trying this with the function
NumberForm[] and Export[] but the problem is that export function is
not exporting only the number but the full inputform. For example, if
I do this:

Export["teste.dat", NumberForm[1.23456, {3, 4}]]

it will write in the file this:

NumberForm[1.23456, {3, 4}]

It happens the same with:

NumberForm[1.23456, {3, 4}]>>"teste.dat".

Another problem is that in the end I need the data in fortran form,
which mean I can't pass to a string before exporting because for the
cases of raw data that are in scientific format the final result will
be a string with "10^x" which is not fortran format.

Thanks,

Miguel




From: Albert Retey on
Hi,

>
> I need to export to a file several numbers with a specific number of
> digits on the right of the decimal. I'm trying this with the function
> NumberForm[] and Export[] but the problem is that export function is
> not exporting only the number but the full inputform. For example, if
> I do this:
>
> Export["teste.dat", NumberForm[1.23456, {3, 4}]]
>
> it will write in the file this:
>
> NumberForm[1.23456, {3, 4}]
>
> It happens the same with:
>
> NumberForm[1.23456, {3, 4}]>>"teste.dat".
>
> Another problem is that in the end I need the data in fortran form,
> which mean I can't pass to a string before exporting because for the
> cases of raw data that are in scientific format the final result will
> be a string with "10^x" which is not fortran format.

Actually I think that converting to String is what you want in this
case, note that you can use ToString together with NumberForm or
FortranForm:

ExportString[ToString(a)NumberForm[1.23456, {3, 4}], "Table"]

ExportString[ToString(a)FortranForm[1.23456*10^-8], "Table"]

should both work. If you need 4 digits and the fortran like e notation
you could do something like this:

ExportString[ToString(a)NumberForm[1.23456*10^-8, {3, 4},
NumberPadding -> {"", "0"},
NumberFormat -> (If[#3 === "", #1, Row[{#1, "e", #3}]] &)
], "Table"]

Note: Export with a filename exports the result of ExportString to a
filename, so you can use ExportString as a convenient way to see what
Export would do.

hth,

albert



From: David Park on
Have you tried the Round function?

Round[N[1/3], .01]
% // InputForm

0.33

0.33


David Park
djmpark(a)comcast.net
http://home.comcast.net/~djmpark/


From: miguelwon [mailto:miguelwon(a)gmail.com]

Hello.

I need to export to a file several numbers with a specific number of
digits on the right of the decimal. I'm trying this with the function
NumberForm[] and Export[] but the problem is that export function is
not exporting only the number but the full inputform. For example, if
I do this:

Export["teste.dat", NumberForm[1.23456, {3, 4}]]

it will write in the file this:

NumberForm[1.23456, {3, 4}]

It happens the same with:

NumberForm[1.23456, {3, 4}]>>"teste.dat".

Another problem is that in the end I need the data in fortran form,
which mean I can't pass to a string before exporting because for the
cases of raw data that are in scientific format the final result will
be a string with "10^x" which is not fortran format.

Thanks,

Miguel