Python scientific notation using D instead of E

后端 未结 3 721
情话喂你
情话喂你 2020-12-10 11:55

Some results file produced by Fortran programs report double precision numbers (in scientific notation) using the letter D instead of E, for instan

相关标签:
3条回答
  • 2020-12-10 12:38

    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
    
    0 讨论(0)
  • 2020-12-10 12:47

    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
    
    0 讨论(0)
  • 2020-12-10 12:52

    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).

    0 讨论(0)
提交回复
热议问题