Discuss / Python / 参考了评论区的小数计算部分,用平方这个更简洁

参考了评论区的小数计算部分,用平方这个更简洁

Topic source
def str2float(s):
    s1,s2=s.split('.')
    num1 = reduce(lambda x,y:x*10+y,map(char2num,s1))
    num2 = reduce(lambda x,y:x*10+y,map(char2num,s2))
    num2 = num2*0.1**len(s2)
    return num1+num2

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

  • 1

Reply