python:包含'e'和‘-’的 str 转 float

python:包含’e’和‘-’的 str 转 float

from functools import reduce

def str2float(s):
    s = s.split('.')
    a = s[0]
    b = s[1]
    if a[0] == '-':
        a = a[1:]
        front = reduce(lambda x,y:y+x*10,map(int,a))
        a = 0
        if 'e' in b:
            print('a')
            for i in b:
                a += 1
                if i == 'e':
                    c = b[a+1:]
                    middle = reduce(lambda x,y:y+x*10,map(int,c))
                    b = b[:a-1]
                    buttom = reduce(lambda x,y:y+x*10,map(int,b))
                    result = (front + buttom / 10 ** (len(b))) / 10 ** middle
                    result = -result
                    print(result)
                    return result
        else:
            print('b')
            buttom = reduce(lambda x, y: y + x * 10, map(int, b))
            result = front + buttom / 10 ** (len(b))
            result = -result
            print(result)
            return result
    else :
        front = reduce(lambda x, y: y + x * 10, map(int, a))
        a = 0
        if 'e' in b:
            print('c')
            for i in b:
                a += 1
                if i == 'e':
                    c = b[a+1:]
                    middle = reduce(lambda x,y:y+x*10,map(int,c))
                    b = b[:a-1]
                    buttom = reduce(lambda x,y:y+x*10,map(int,b))
                    result = (front + buttom / 10 ** (len(b))) / 10 ** middle
                    print(result)
                    return result
        else:
            print('d')
            buttom = reduce(lambda x, y: y + x * 10, map(int, b))
            result = front + buttom / 10 ** (len(b))
            print(result)
            return result

结果测试
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43225437/article/details/89644488