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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值