工作中需要将汉字大写的金额转为数字,写了个方法,现在分享出来
# 繁体金额转数字 import re def trad_to_int(money): # 转换字典 trad_dict = { '零':0, '壹':1, '贰':2, '叁':3, '肆':4, '伍':5, '陆':6, '柒':7, '捌':8, '玖':9, '拾':10, '佰':100, '仟':1000, '万':10000, '亿':100000000, '角':0.1, '分':0.01 } trad = re.search(r"[零壹贰叁肆伍陆柒捌玖拾佰仟亿角分]+", money) if trad is not None: num = 0 add = 0 sum = 0 for i in money: if i in ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖']: add = trad_dict[i] sum = sum + add elif i in ['拾','佰','仟','亿','角','分']: num = add * trad_dict[i] sum = sum - add sum = sum + num add = num elif i == '万' or i == '亿': sum = sum * trad_dict[i] sum = str(sum) + '元' return sum else: return money