Discuss / Python / 字符串转Float

字符串转Float

Topic source
from functools import reduce

def str2float(s):
    def fn2(n):
        sum = 1
        for x in range(n):
            sum = sum * 10
        return sum
    def fn1(x, y):
        return x *10 + y
    def char2num(s):
    return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s]
    def splitStr(s):
        high, low = s.split('.')
        high = reduce(fn1, map(char2num, high))
        low = reduce(fn1, map(char2num, low))/fn2(len(low))
        return high + low
    return splitStr(s)


print(str2float('12.123'))

  • 1

Reply