使用python模块 将中文大写汉字转化成阿拉伯数字

模块: 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
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值