# -*- coding: utf-8 -*-
from functools import reduce
def str2float(s):
ls=s.split('.')
intpart=reduce(lambda x,y:10*x+y, map(lambda x:ord(x)-ord('0'), ls[0]))
floatpart=reduce(lambda x,y:10*x+y, map(lambda x:ord(x)-ord('0'), ls[1]))
for i in range(len(ls[1])): floatpart=floatpart/10
intpart=intpart+floatpart
return intpart
print('str2float(\'123.456\') =', str2float('123.456'))
if abs(str2float('123.456') - 123.456) < 0.00001:
print('测试成功!')
else:
print('测试失败!')