python代码片段 之 阿拉…

本文介绍了一个将阿拉伯数字转换为汉字金额表示的Python函数。该函数能够处理整数部分和小数部分,支持不同位数的数字,并能正确地转换带有小数的金额,如元、角、分等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

def changenum(num):

    cdata = str(num).split('.')
    ckj = "0"
    num = cdata[0]
    if len(cdata)>1:
        ckj = cdata[1]
        print(ckj)


    dic_num = {"0": u"零", "1": u"壹", "2": u"贰", "3": u"叁", "4": u"肆", "5": u"伍", "6": u"陆", "7": u"柒", "8": u"捌", "9": u"玖"}
    dic_unit = {0: "", 1: u"拾", 2: u"佰", 3: u"仟", 4: u"万", 5: u"拾", 6: u"佰", 7: u"仟", 8: u"亿"}
    # num = "12345"
    numList = list(str(num))
    s = ""
    a = ""
    x = 0
    print(len(str(num))-1)
    index = len(str(num))-1
    for i in numList:
        if i == "0":
            if index == 4:
                a = "万"
            x = x+1
        else:
            if x > 0:
                s += a+u"零"+dic_num[i] + dic_unit[index]
            else:
                s += dic_num[i] + dic_unit[index]
            x = 0

        index -= 1
    print(s)
    s = s +"元"
    lenkj = len(ckj)
    print(lenkj)
    if lenkj == 1: #若小数只有1位
        if int(ckj[0])==0:
            s = s+u'整'
        else:
            s = s+dic_num[int(ckj[0])]+u'角整'
    else: #若小数有两位的四种情况
        if int(ckj[0])==0 and int(ckj[1])!=0:
            s = s+u'零'+dic_num[(ckj[1])]+u'分'
        elif int(ckj[0])==0 and (ckj[1])==0:
            s = s+u'整'
        elif int(ckj[0])!=0 and (ckj[1])!=0:
            s = s+dic_num[(ckj[0])]+u'角'+dic_num[(ckj[1])]+u'分'
        else:
            s = s+dic_num[(ckj[0])]+u'角整'
    return s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值