txl1988 发表于 2024-4-11 10:53:53

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

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

def func(length, cn):
    ans = 0.0
    for i in range(0, length):
      if cn in CN_NUM and cn in CN_UNIT:
            val, unit = CN_NUM], CN_UNIT]
            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
            res2 = func(len(c), c)
            res = res1 + res2
      print(res)


if __name__ == '__main__':
    main()
页: [1]
查看完整版本: 使用python 输入人民币大写金额转换为数字金额