模块: rmbTrans
作用: 将输入的中文大写转换成阿拉伯数字
模块前三个字母 rmb(人民币)专门处理人民币的转换
import rmbTrans
num=‘壹万叁仟贰分’
print(rmbTrans.trans(num)) 输出为13000.02
第二种
写一个金额转换函数,用来实现大写汉字金额到小写阿拉伯数字的转换。简单起见,汉字用一、二、三、四、五、六、七、八、九、十、万、千、百、元、角、分、整来表示,最大不超过千万(含千万)
# list1 = [‘三万九千八百元六角五分’, ‘五千元’, ‘三万零六百元五十三元’, ‘二百零三万三千六百元’,‘二千三百五十八万七千四百二十一元’,‘五百三十二元’]
def func(s):
d1 = {'一':1,'二':2,'三':3,'四':4,'五':5,
'六':6,'七':7,'八':8,'九':9,'零':0}
cn_unit = {
'分':0.01,
'角':0.1,
'十':10,
'百':100,
'千':1000,
'万':10000,
'十万':100000,
'百万':1000000,
'千万':10000000,
}
val = 0
n = 0
ldig = []
ten = []
index = 0
#处理万级数字
if '万' in s:
index = s.index('万')
for st in s[:index]:
if st=='十':
ten.append('0')
if st=='百':
ten.append('00')
if st=='千':
ten.append('000')
s1 = d1.get(st)
if s1 == None:
continue
ten.append(str(s1))
#将万级数字拼接起来
wan = "".join(ten)
val = int(wan) * 10000
index +=1
dig = 0
for i in s[index:]:
if i in d1:
dig = d1.get(i)
if i in cn_unit:
n = cn_unit.get(i)
dig = dig * n
ldig.append(dig)
#处理个位数上的数字
if s[-2] in d1:
if s[-1]=='元':
dig *= 1
ldig.append(dig)
tmp = 0
for x in reversed(ldig):
if x == None:
continue
tmp += x
val += tmp
return val