aret 发表于 2024-3-17 19:16

分享一个实现中文数字转换为阿拉伯数字的方案

def cn2an(chinese_num):
    number_map = {
      "零": 0,
      "一": 1,
      "二": 2,
      "三": 3,
      "四": 4,
      "五": 5,
      "六": 6,
      "七": 7,
      "八": 8,
      "九": 9,
    }

    unit_map = {"十": 10, "百": 100, "千": 1000, "万": 10000, "亿": 100000000}

    arabic_num = 0
    unit = 1
    num = 1
    hundred_million_num = 0

    for index, cn_num in enumerate(chinese_num):
      if cn_num in number_map:
            num = number_map
            if index == len(chinese_num) - 1:
                arabic_num = hundred_million_num + arabic_num + num
      elif cn_num in unit_map:
            unit = unit_map
            if unit == 10000:
                arabic_num = (arabic_num + num) * unit
            elif unit == 100000000:
                hundred_million_num = (arabic_num + num) * unit
                arabic_num = 0
            else:
                arabic_num = arabic_num + num * unit
            num = 0
            if index == len(chinese_num) - 1:
                arabic_num = hundred_million_num + arabic_num + num
      else:
            raise ValueError(f"{cn_num} 不在转化范围内")

    return arabic_num
目前测试下来到亿单位的都可以正常转换

yunhang 发表于 2024-3-17 20:50

支持一下,对于转换还是有点用呢

ylixx 发表于 2024-3-17 21:00

Python 学习到了,谢谢

kittylang 发表于 2024-3-17 21:01

一般这种用大写中文比较多吧,支付宝到账壹伯万

daoye9988 发表于 2024-3-17 21:02

非常有用的软件

Henglie 发表于 2024-3-17 21:21

不然主流的是其他方法吗?{:301_1008:}

zzhd 发表于 2024-3-17 21:25

感谢分享

aq2544022 发表于 2024-3-17 21:27

感谢,正在找这样的功能呢

suxk 发表于 2024-3-17 22:09

学习了,谢谢分享

sai609 发表于 2024-3-17 22:49

wps给单词做替换即可,批量
页: [1] 2
查看完整版本: 分享一个实现中文数字转换为阿拉伯数字的方案