python3 将汉字数字转阿拉伯数字
CN_NUM = {
u'〇': 0, u'一': 1, u'二': 2, u'三': 3, u'四': 4, u'五': 5, u'六': 6, u'七': 7, u'八': 8, u'九': 9, u'零': 0, u'壹': 1, u'贰': 2, u'叁': 3, u'肆': 4, u'伍': 5, u'陆': 6, u'柒': 7, u'捌': 8, u'玖': 9, u'貮': 2, u'两': 2,}
CN_UNIT = {
u'十': 10, u'拾': 10, u'百': 100, u'佰': 100, u'千': 1000, u'仟': 1000, u'万': 10000, u'萬': 10000, u'亿': 100000000, u'億': 100000000, u'兆': 1000000000000,}
def _chinesToDigital(text):
if text.isdigit():
return float(text)
total = 0
unit = 1 # 表示单位:个十百千
for i, temp_text in enumerate(reversed(text)):
if temp_text in CN_NUM:
val = CN_NUM[temp_text]
else:
val = CN_UNIT[temp_text]
if val >= 10 and i == len(text)-1: # # 应对 十三 十四 十*之类
if val > unit:
unit = val
total = total + val
else:
unit = unit * val
elif val >= 10:
if val > unit:
unit = val
else:
unit = unit * val
else:
total = total + unit * val
return total