鱼C论坛

 找回密码
 立即注册
查看: 626|回复: 0

[原创] 使用python 输入人民币大写金额转换为数字金额

[复制链接]
发表于 2024-4-11 10:53:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
使用python 输入人民币大写金额转换为数字金额,金额最大到亿,超过十亿元请找自己的财务把~~
闲言少叙,上才艺!!
def func(length, cn):
    ans = 0.0
    for i in range(0, length):
        if cn[i] in CN_NUM and cn[i + 1] in CN_UNIT:
            val, unit = CN_NUM[cn[i]], CN_UNIT[cn[i + 1]]
            ans += val * unit
        else:
            continue
    return round(ans, 2)


def main():
    global CN_NUM, CN_UNIT
    CN_NUM = {
        '〇': 0, '一': 1, '二': 2, '三': 3, '四': 4, '五': 5, '六': 6, '七': 7, '八': 8, '九': 9, '零': 0,
        '壹': 1, '贰': 2, '叁': 3, '肆': 4, '伍': 5, '陆': 6, '柒': 7, '捌': 8, '玖': 9, '貮': 2, '两': 2,
    }

    CN_UNIT = {
        '元': 1,'十': 10,'拾': 10,'百': 100,'佰': 100,'千': 1000,'仟': 1000,'万': 10000,'萬': 10000,
        '亿': 10000,'億': 10000,'角': 0.1,'分': 0.01
    }
    print('退出请按q')
    
    while True:
        a = input('请输入大写金额(元):')
        if a in ['q', 'Q']:
            break
        if a.endswith('整'):
            a = a[:len(a) - 1]
        if a.find('万') == -1:
            res = func(len(a), a)
        else:
            b = a[:a.find('万')] + '元'
            res1 = func(len(b), b) * 10000
            c = a[a.find('万') + 1:]
            res2 = func(len(c), c)
            res = res1 + res2
        print(res)


if __name__ == '__main__':
    main()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 02:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表