Discuss / Python / t3

DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}

def str2float(s):

    if not isinstance(s, str):

        raise TypeError

    s1 = s[:s.index(".")]

    s2 = s[(s.index(".") +1):]

    s = s1 + s2

    def fn(x, y):

        return x * 10 + y

    def str2num(x):

        return DIGITS[x]

    return reduce(fn, map(str2num, s)) / (10 **len(s2))


  • 1

Reply