1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
dict ={u'零':0, u'一':1, u'二':2, u'三':3, u'四':4, u'五':5, u'六':6, u'七':7, u'八':8, u'九':9, u'十':10, u'百':100, u'千':1000, u'万':10000, u'0':0, u'1':1, u'2':2, u'3':3, u'4':4, u'5':5, u'6':6, u'7':7, u'8':8, u'9':9, u'壹':1, u'贰':2, u'叁':3, u'肆':4, u'伍':5, u'陆':6, u'柒':7, u'捌':8, u'玖':9, u'拾':10, u'佰':100, u'仟':1000, u'萬':10000, u'亿':100000000} def getResultForDigit(a, encoding="utf-8"): if isinstance(a, str): a = a.decode(encoding)
count = 0 result = 0 tmp = 0 Billion = 0 while count < len(a): tmpChr = a[count] tmpNum = dict.get(tmpChr, None) if tmpNum == 100000000: result = result + tmp result = result * tmpNum Billion = Billion * 100000000 + result result = 0 tmp = 0 elif tmpNum == 10000: result = result + tmp result = result * tmpNum tmp = 0 elif tmpNum >= 10: if tmp == 0: tmp = 1 result = result + tmpNum * tmp tmp = 0 elif tmpNum is not None: tmp = tmp * 10 + tmpNum count += 1 result = result + tmp result = result + Billion return result
|