字符串转浮点数(Python)

字符串转浮点数(Python)

example:
字符串形式的"123.789" 转换成 浮点数形式的 123.789
我在这里使用了mapreduce
上代码:

from functools import reduce
def str2float(s):
	digitals = {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}
	b = 0 # 小数位数
	for i in range(len(s)):
		if s[i] == '.':
			b = len(s) - i -1
			break
	s = s[:len(s)-b-1] + s[len(s)-b:] # str -- "123789"
	# print(s)
	# print(type(s))

	def f1(s):
		return digitals[s]
	
	def f2(a,b):
		return a*10 + b
	
	def f3(s):
		for i in range(b):
			# round -- 为了 去除浮点数 运算产生的尾数,这里保存小数位 最多b位,和题目相同
			s = round(s*0.1,b) 
		return s
	return f3(reduce(f2,map(f1,s)))

if __name__ == "__main__":
	a = str2float("123.789")
	print(a)
	print(type(a))

运行之后的结果是:

123.789
<class 'float'>

你可能感兴趣的:(编程笔面试题,python,字符串)