Some results file produced by Fortran programs report double precision numbers (in scientific notation) using the letter D
instead of E
, for instan
If you are dealing with lots of data and/or are doing a lot computations with that data, you might consider using the fortran-friendly numpy module which supports double-precision fortran format out of the box.
>>> numpy.float('1.5698D+03')
1569.8
The simplest way, from your Python program, would be just to add a step before you interpret each entry:
>>> val = "1.5698D+03" # 1,569.8
>>> print float(val.replace('D', 'E'))
1569.8
Another option is the fortranformat library for Python. It will read strings and interpret them according to a FORTRAN format statement. i.e.
>>> import fortranformat as ff
>>> line = ff.FortranRecordReader('(F10.0)')
>>> line.read('1.5698D+03')
[1569.8]
Install with easy_install -U fortranformat
Any questions, email me (I'm the author).