#实现的思想是先去掉小数点,然后将字符串转成整数,然后通过除法将小数点变回来 DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} def findPointPosition(s1): #找出小数点的位置 n = 0 while(s[n] != '.'): n += 1 return n
def char2num(s2): return DIGITS[s2] p = findPointPosition(s) #求除数 i = len(s) - 1 - p; j = 1 while(i != 0): j = j*10 i = i - 1 s = s[:p] + s[p+1:] #去掉字符串中的小数点 n1 = reduce(lambda x, y: x * 10 + y, map(char2num, s)) return float(n1) / j #做除法,把小数点变回来
兄台,感觉你前面写的都是画蛇添足啊,你最后来个float方法是在惊讶到我了,你还不如直接使用float('123.456')直接了事
Sign in to make a reply
这是一张牛吃草图
#实现的思想是先去掉小数点,然后将字符串转成整数,然后通过除法将小数点变回来 DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} def findPointPosition(s1): #找出小数点的位置 n = 0 while(s[n] != '.'): n += 1 return n