Re: export to file with a specific precision
- To: mathgroup at smc.vnet.net
- Subject: [mg111520] Re: export to file with a specific precision
- From: Albert Retey <awnl at gmx-topmail.de>
- Date: Wed, 4 Aug 2010 05:48:24 -0400 (EDT)
- References: <i38rhl$d6m$1@smc.vnet.net>
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 at NumberForm[1.23456, {3, 4}], "Table"] ExportString[ToString at 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 at 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