当我运行我的代码时,它会生成KeyError
from functools import reduce
DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
def str2float(s):
dot_index=s.index('.')
new_str = s[:dot_index]+s[dot_index:]
print(new_str)
return reduce(lambda x,y:x*10+y,map(lambda x:DIGITS[x],new_str))/(10**(len(new_str)-dot_index))
num = str2float('123.456')
print(num)
答案 0 :(得分:0)
Casting to float将解决您的问题:
numberInString = "123.456"
numberInFloat = float(numberInString)
变量“numberInFloat”是一个浮点变量。 如果你想要一个整数使用int(),str()表示字符串。
答案 1 :(得分:0)
在解析搅动"123.456"
时,您的代码会遇到'.'
字符,该字符不在您的词典中。