Python:麻烦阅读数字格式

时间:2013-11-30 19:53:43

标签: python string-formatting

我正在读取一个文件,其中数字列为-4.8416932597054D-04,其中D是科学记数法。我以前从未见过这种表示法。 Python如何读取-4.8416932597054 * D * -04 as -4.8416932597054 * E * -04我已经查看了其他问题并且没有阅读任何解决此问题的内容? (或者我已经并且没有认出来。)谢谢。

2 个答案:

答案 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