from functools import reduce
def str2float(s):
def dict(s):
dict1 ={'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9,'.':'.'}
return dict1[s]
def fn(x,y):
return x*10+y
a =0
for i in s :
a +=1
if i =='.':
s = s[:a-1]+s[a:]
break
if a ==len(s):
return reduce(fn,map(dict,s))
else:
return reduce(fn,map(dict,s))/(10**(len(s)-a+1))
验证:
m='123.456'
print(str2float(m))
输出: