字符串转浮点数(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'>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值