Экспоненциальное представление Python с помощью D вместо E

Некоторый файл результатов, произведенный программами Фортрана, сообщает о числах двойной точности (в экспоненциальном представлении) использование буквы D вместо E, например:

1.2345D+02
# instead of
1.2345E+02

Я должен обработать огромные суммы этих данных с помощью Python, и я просто понял, что это не может считать числа в D нотация, например:

>>> A = 1.0D+01
  File "<stdin>", line 1
    A = 1.0D+01
           ^
SyntaxError: invalid syntax

Я могу изменить свою локаль и позволить Python знать это D средства E? Я действительно не хотел бы делать расширенный поиск и замену!

11
задан Escualo 24 December 2009 в 17:52
поделиться

2 ответа

Самым простым способом из вашей программы на Python будет просто добавить шаг перед интерпретацией каждой записи:

>>> val = "1.5698D+03"  # 1,569.8
>>> print float(val.replace('D', 'E'))
1569.8
11
ответ дан 3 December 2019 в 02:10
поделиться

Если вы имеете дело с большим количеством данных и/или делаете много вычислений с этими данными, вы можете подумать об использовании модуля fortran-friendly numpy, который поддерживает формат fortran с двойной точностью вне коробки.

>>> numpy.float('1.5698D+03')
1569.8
15
ответ дан 3 December 2019 в 02:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: