Discuss / Python / 第三题

第三题

Topic source
def str2float(x):
    def fn1(x, y):
        return x * 10 + y

    def fn2(x, y):
        return x * 0.1 + y

    def char2num(x):
        return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[x]

    a, b = x.split('.')

    return reduce(fn1, map(char2num, a)) + 0.1 * reduce(fn2, map(char2num, b[::-1]))

  • 1

Reply