Некоторый файл результатов, произведенный программами Фортрана, сообщает о числах двойной точности (в экспоненциальном представлении) использование буквы 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
? Я действительно не хотел бы делать расширенный поиск и замену!
Самым простым способом из вашей программы на Python будет просто добавить шаг перед интерпретацией каждой записи:
>>> val = "1.5698D+03" # 1,569.8
>>> print float(val.replace('D', 'E'))
1569.8
Если вы имеете дело с большим количеством данных и/или делаете много вычислений с этими данными, вы можете подумать об использовании модуля fortran-friendly numpy, который поддерживает формат fortran с двойной точностью вне коробки.
>>> numpy.float('1.5698D+03')
1569.8