# constants for chinese_to_arabic

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 = {

'十' : 10,

'拾' : 10,

'百' : 100,

'佰' : 100,

'千' : 1000,

'仟' : 1000,

'万' : 10000,

'萬' : 10000,

'亿' : 100000000,

'億' : 100000000,

'兆' : 1000000000000,

}

def chinese_to_arabic(cn:str) -> int:

unit = 0 # current

ldig = [] # digest

for cndig in reversed(cn):

if cndig in CN_UNIT:

unit = CN_UNIT.get(cndig)

if unit == 10000 or unit == 100000000:

ldig.append(unit)

unit = 1

else:

dig = CN_NUM.get(cndig)

if unit:

dig *= unit

unit = 0

ldig.append(dig)

if unit == 10:

ldig.append(10)

val, tmp = 0, 0

for x in reversed(ldig):

if x == 10000 or x == 100000000:

val += tmp * x

tmp = 0

else:

tmp += x

val += tmp

return val

# TODO: make a full unittest

def test():

test_dig = ['八',

'十一',

'一百二十三',

'一千二百零三',

'一万一千一百零一',

'十万零三千六百零九',

'一百二十三万四千五百六十七',

'一千一百二十三万四千五百六十七',

'一亿一千一百二十三万四千五百六十七',

'一百零二亿五千零一万零一千零三十八']

for cn in test_dig:

x = chinese_to_arabic(cn)

print(cn, x)

assert x == 10250011038

if __name__ == '__main__':

test()

八 8

十一 11

一百二十三 123

一千二百零三 1203

一万一千一百零一 11101

十万零三千六百零九 103609

一百二十三万四千五百六十七 1234567

一千一百二十三万四千五百六十七 11234567

一亿一千一百二十三万四千五百六十七 111234567

一百零二亿五千零一万零一千零三十八 10250011038

---------------------

作者:HexRain

来源:CSDN

原文:https://blog.csdn.net/hexrain/article/details/52790126

版权声明:本文为博主原创文章,转载请附上博文链接!

Java 阿拉伯数字转换为中文大写数字

Java 阿拉伯数字转换为中文大写数字 /** * *

*

Copyright 1994 JsonInternational&l ...

JS把数字金额转换成中文大写数字的函数

//把数字金额转换成中文大写数字的函数 function num2rmb ($num){ $c1="零壹贰叁肆伍陆柒捌玖"; $c2="分角元拾佰仟万拾佰仟亿" ...

XtraReport报表入库单数字转中文大写数字

先看看打印入库单的效果图,看如下: 客户要求合计一行,要求大写中文数字.XtraReport报表是如何做出以上图的效果呢?因为是要把数字转成大写中文数字,得先准备数字转大写中文数字的函数.因网上有很多 ...

阿拉伯数字转中文大写数字的JS

function intToChinese ( str ) { str = str+''; var len = str.length-1; var idxs = ['','十','百','千','万' ...

Ubuntu18.04, WPS表格生成中文大写数字的script

=IF(ROUND(J9,2)<0,"无效数值",IF(ROUND(J9,2)=0,"零",IF(ROUND(J9,2)<1,"&quot ...

Python将阿拉伯数字转化为中文大写-乾颐堂

利用Python将阿拉伯数字转化为中文大写,其实最麻烦的地方就是中间空多个0的问题,这种情况下,采用拆分法则,将一个大数字,先拆分成整数部分和小数部分,再对整数部分按照仟.万.亿.兆分位拆分为四个字符 ...

用Python递归解决阿拉伯数字转为中文财务数字格式的问题&lpar;2&rpar;--打开思路的一种方法

几天前自己写了个将阿拉伯数字转为中文财务数字的程序.用的递归,不幸的是它是树形递归. 虽然实际过程中不太可能出现金额数字大到让Python递归栈溢出,但是始终是一块心病,这玩意终究在理论上是受限制的. ...

python初学者笔记&lpar;2&rpar;&colon;阿拉伯数字转换成中文大写

题:输入一个数字,转换成中文大写的写法 可运行的程序(Python 2.7.9): # -*- coding: utf-8 -*- #在python2的py文件里面写中文,必须要添加一行声明文件编码的 ...

&period;Net C&num; 阿拉伯数字转为中文金额数字

一个练习,将阿拉伯数字转为中文金额数字,针对包含整数的金额有问题 代码: public string ReturnStr(string inputNum) { ", }; string[] ...

随机推荐

&lbrack;No0000A8&rsqb;Word中设置图片下的题注及插入多级列表编号

1.什么是题注? 2.怎么实现一个可以自动更新的题注?  只有先定义好文档编号后,才可以设置出正确的图片下标题注. 文章的结构可以通过导航窗口导航. 导航窗口打开方式. 3.设置好文档编号后,怎样插入 ...

【转】 memset&lpar;&rpar;的效率以及源码分析

void *memset(void *s, int ch, size_t n);作用:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常 ...

C&num;获取本地系统日期格式

我们可以通过使用DataTime这个类来获取当前的时间.通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04).时间(12:12:12).日期+时间(2008-09-04 12 ...

oracle使用存储过程实现日志记录&period;sql

--这段sql语句是用来实现oracle后台记录操作日志的,代替或者补充应用系统的操作日志. --1.对应的日志记录表----------------------------------------- ...

ecshop lang用法

ecshop lang用法 分类: ECSHOP2013-08-15 16:17 2184人阅读 评论(0) 收藏 举报 ecshop目录下的languages目录.这个是ecshop语言包所在.ec ...

一大坨GoogleAPI的学习笔记之一(oAuth2&period;0)

官方文档地址:https://developers.google.com/accounts/docs/OAuth2InstalledApp 最近Ubuntu下VGA接口无端的不能用了,木有心情翻译了, ...

jquery优化引发的思考

无意间看到jquery优化的一个细节让我觉得不可思议记录一下.仅仅只是换个地方代码就能提高数倍的效率,带给我的不是个仅是个小技巧,而是一总编程思想,技术大牛往往是在细节上体现. 通过缓存最小化选择操作 ...

20165318 预备作业二 学习基础和C语言基础调查

20165318 学习基础和C语言基础调查 技能学习经验 我们这一代人,或多或少的都上过各种兴趣班,舞蹈钢琴画画书法,我也是如此.可这些技能中,唯一能拿的出手的就是舞蹈了.按照<优秀的教学方法- ...

遗传算法详解&lpar;LINGO及MatlabGA工具箱求解实现&rpar;

遗传算法 1.前言 遗传算法是一种基于生物界自然群体遗传进化机制的自适应全局优化概率搜索算法.它与传统算法不同,不依赖梯度信息,而是通过模拟自然进化过程来搜索最优解. 例子:兔子的遗传进化 有人说,现 ...

Python之函数参数

# -*- coding: utf-8 -*- """ Created on Fri Sep 7 09:13:50 2018 @author: zhen "&q ...

python123数字转换_Python 中文(大写)数字转阿拉伯数字(转)相关推荐

  1. java 数字转大写_Java把数字转换成中文大写数字

    package com.chen.test; public class TestChinese { public static void main(String[] args) { System.ou ...

  2. js将数字转换成中文大写

    //完成将 toChineseNum, 可以将数字转换成中文大写的表示,处理到万级别,例如 toChineseNum(12345),返回 一万二千三百四十五.const toChinesNum = ( ...

  3. C语言-如何将用户输入的金额数字转换成中文大写?

    实战: 如何将用户输入的金额数字转换成中文大写? #include <stdio.h>int main() {// 输入金额转换成大写int money; // 输入数字int money ...

  4. JavaScript:将输入的一串数字转换成中文大写,最高可写12位(千亿)

    将输入的一串数字转换成中文大写,最高可写12位(千亿) 例:输入:10000,输出:壹万 输入:10010,输出:壹万零壹拾 源码: function toChineseBig(num) {// 将接 ...

  5. 把数字金额转换成中文大写数字

    //把数字金额转换成中文大写数字 function changeNumMoneyToChinese(money) { var cnNums = new Array("零", &qu ...

  6. 【工具封装】Python 实现将阿拉伯数字 === 转换成中文大写数字

    一.序言:   工具封装第四弹,阿拉伯数字 ===> 转换成 ===> 中文大写数字,喜欢就赶紧收藏+点赞+关注吧 !!! ---- Nick.Peng 二.实现代码如下: #!/usr/ ...

  7. 将数字转换成中文大写的算法

    //名称:ConvertSignCap   //参数:number   //返回:CapNumber   //描述:将传入的单个数字转换成中文大写形式   //创建人:刘权 2004-11-16    ...

  8. python数字转换成中文大写

    python数字转换成中文大写 代码 #-*- coding:utf-8 -*- count_map = {1:1, 2:10, 3:100, 4:1000, 5:10000} #用来统计传入数值的级 ...

  9. python 把数字转换成中文大写

    def conversionString(intnumber):'''把数字转换成中文大写,例如:1->一 ,25->二十五,49->四十九Parameters----------i ...

  10. 将一组阿拉伯数字转换成中文大写数字

    题目大概:  将一组阿拉伯数字转换成中文大写数字  52306 ==> 伍万贰千叁百零陆 我实现了将文件中的一组数字(每行为一个数)  形如: Java代码   25364 466932300 ...

最新文章

  1. 在ASP.Net中如何彻底杀死Excel进程
  2. python中decode和encode的区别
  3. android-apt-compiler: Cannot run program D:\android-sdk\platform-tools\aapt
  4. 计算机系统 程序和指令
  5. Jetson-TX2安装opencv教程
  6. 周末ROS学习沙龙第五期——IMU应用、红外应用、语音应用
  7. php常见后缀绕过,文件包含漏洞(绕过姿势)
  8. PSP记录个人项目耗时情况
  9. 如何用AD打开PADS的PCB文件?
  10. Datawhale组队学习:数据竞赛(房价预测)课程任务
  11. linux系统tcl电视刷机包,【欢视商店】TCL电视RT95系列升级包与刷机包
  12. 3D数学基础:向量运算
  13. 求一个向量变换为另一个向量的矩阵_机器学习数学-矩阵
  14. Movielens/IMDB电影数据分析(一)
  15. 大学计算机学院微信公众号取名,个人微信公众号取名
  16. linux 释放 文件缓存,Linux中手动释放缓存的方法
  17. grabber.start()获取摄像头数据异常
  18. 自动打call机 qq伪自动发消息
  19. 女友老爸开了中介公司让我抽空搞开发个租房App,像贝壳一样就行.....
  20. 前后期绑定Excel/Word对象的应用

热门文章

  1. sox处理mp3_sox的常用方法
  2. Android群英传 笔记1 安卓 系统架构和开发工具
  3. 让你的Win10桌面比macOS还简洁漂亮高大上
  4. YBT高效进阶3.4.2 洛谷P2341 POJ2186受欢迎的牛Popular Cows
  5. Access Violation(非法访问)解析
  6. 教你如何注册到受限的MSN.COM、passport.com账号
  7. 计算机sid 用户sid,win10系统怎么生成新的SID号
  8. 电力需求侧管理及智能电力监控技术在电子设备制造行业错峰限电中的应用
  9. 开源项目(VC++,MFC)
  10. 关于OSPF的区域划分规则