使用 D 代替 E 的 Python 科学记数法

标签 python locale scientific-notation

一些由 Fortran 程序生成的结果文件使用字母 D 而不是 E 来报告 double 字(以科学记数法),例如:

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

关于使用 D 代替 E 的 Python 科学记数法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1959210/

相关文章:

python - 异常是 : unsupported operand type(s) for -: 'str' and 'datetime.timedelta'

C++ std::ctype<char>::widen() 的作用是什么?

c# - 如何在 .NET 的单个单元测试中修改语言环境小数点分隔符?

python-3.x - 如何以科学计数法计算和存储数字?

java - 将具有负标度的 BigDecimal 转换为正标度

python - 跳出当前迭代的 for 循环

python - 在 python 2 中为类设置 __doc__

python - Python2 字典中的非单调内存消耗

python - 正则表达式匹配中的变音符号(通过语言环境?)

javascript - 在 JavaScript 中使用科学记数法的陷阱