吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 820|回复: 17
收起左侧

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

[复制链接]
aret 发表于 2024-3-17 19:16
[Python] 纯文本查看 复制代码
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[cn_num]
            if index == len(chinese_num) - 1:
                arabic_num = hundred_million_num + arabic_num + num
        elif cn_num in unit_map:
            unit = unit_map[cn_num]
            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
kittylang 发表于 2024-3-17 21:01
一般这种用大写中文比较多吧,支付宝到账壹伯万
daoye9988 发表于 2024-3-17 21:02
非常有用的软件
Henglie 发表于 2024-3-17 21:21
不然主流的是其他方法吗?
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给单词做替换即可,批量
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 16:17

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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