我正在读取一个文件,其中数字列为-4.8416932597054D-04,其中D是科学记数法。我以前从未见过这种表示法。 Python如何读取-4.8416932597054 * D * -04 as -4.8416932597054 * E * -04我已经查看了其他问题并且没有阅读任何解决此问题的内容? (或者我已经并且没有认出来。)谢谢。
答案 0 :(得分:1)
def to_float(s):
return float(s.lower().replace('d', 'e'))
编辑:您能举例说明一个输入字符串仍会给您“同样的错误”吗?因为to_float('-4.8416932597054D-04')
对我很有效,所以返回-0.00048416932597054
。
答案 1 :(得分:0)
你了解这种表示法?如果是这样,你可以使用您的知识来解决这个问题。使用数字进行字符串格式化,解析它,使用正则表达式从数字中提取D-04
并将其转换为更多数字字符串,附加到原始字符串并使Python转换它。
世界上没有针对每种情况或每种数据模型的Python模块,我们(尤其是您)必须创建自己的解决方案。
def read_strange_notation(strange_number):
number, notation = strange_number.split('D-')
number, notation = int(number), int(notation)
actual_number = number ** notation # here I don't know what `D-` means,
# so you do something with these parts
return actual_number