鱼C论坛

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

[作品展示] 使用python 输入人民币大写金额转换为数字金额

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

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

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

x
使用python 输入人民币大写金额转换为数字金额,金额最大到亿,超过十亿元请找自己的财务把~~
闲言少叙,上才艺!!

  1. def func(length, cn):
  2.     ans = 0.0
  3.     for i in range(0, length):
  4.         if cn[i] in CN_NUM and cn[i + 1] in CN_UNIT:
  5.             val, unit = CN_NUM[cn[i]], CN_UNIT[cn[i + 1]]
  6.             ans += val * unit
  7.         else:
  8.             continue
  9.     return round(ans, 2)


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

  16.     CN_UNIT = {
  17.         '元': 1,'十': 10,'拾': 10,'百': 100,'佰': 100,'千': 1000,'仟': 1000,'万': 10000,'萬': 10000,
  18.         '亿': 10000,'億': 10000,'角': 0.1,'分': 0.01
  19.     }
  20.     print('退出请按q')
  21.    
  22.     while True:
  23.         a = input('请输入大写金额(元):')
  24.         if a in ['q', 'Q']:
  25.             break
  26.         if a.endswith('整'):
  27.             a = a[:len(a) - 1]
  28.         if a.find('万') == -1:
  29.             res = func(len(a), a)
  30.         else:
  31.             b = a[:a.find('万')] + '元'
  32.             res1 = func(len(b), b) * 10000
  33.             c = a[a.find('万') + 1:]
  34.             res2 = func(len(c), c)
  35.             res = res1 + res2
  36.         print(res)


  37. if __name__ == '__main__':
  38.     main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 01:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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