在会计的时候,用到将数字转换为大写,也就是讲数字转为汉字

外汇出入金流程https://www.fx61.com/supportclass cnumber:

cdict = {}

gdict = {}

xdict = {}

def __init__(self):

self.cdict = {1: u'', 2: u'拾', 3: u'佰', 4: u'仟'}

self.xdict = {1: u'元', 2: u'万', 3: u'亿', 4: u'兆'} # 数字标识符

self.gdict = {0: u'零', 1: u'壹', 2: u'贰', 3: u'叁', 4: u'肆', 5: u'伍', 6: u'陆', 7: u'柒', 8: u'捌', 9: u'玖'}

def csplit(self, cdata): # 拆分函数,将整数字符串拆分成[亿,万,仟]的list

g = len(cdata) % 4

csdata = []

lx = len(cdata) - 1

if g > 0:

csdata.append(cdata[0:g])

k = g

while k <= lx:

csdata.append(cdata[k:k + 4])

k += 4

return csdata

def cschange(self, cki): # 对[亿,万,仟]的list中每个字符串分组进行大写化再合并

lenki = len(cki)

i = 0

lk = lenki

chk = u''

for i in range(lenki):

if int(cki[i]) == 0:

if i < lenki - 1:

if int(cki[i + 1]) != 0:

chk = chk + self.gdict[int(cki[i])]

else:

chk = chk + self.gdict[int(cki[i])] + self.cdict[lk]

lk -= 1

return chk

def cwchange(self, data):

cdata = str(data).split('.')

cki = cdata[0]

if len(cdata) == 1:

i = 0

chk = u''

cski = self.csplit(cki) # 分解字符数组[亿,万,仟]三组List:['0000','0000','0000']

ikl = len(cski) # 获取拆分后的List长度

# 大写合并

for i in range(ikl):

if self.cschange(cski[i]) == '': # 有可能一个字符串全是0的情况

chk = chk + self.cschange(cski[i]) # 此时不需要将数字标识符引入

else:

chk = chk + self.cschange(cski[i]) + self.xdict[ikl - i] # 合并:前字符串大写+当前字符串大写+标识符

chk = chk + u'整'

else:

i = 0

chk = u''

cski = self.csplit(cki) # 分解字符数组[亿,万,仟]三组List:['0000','0000','0000']

ikl = len(cski) # 获取拆分后的List长度

# 大写合并

for i in range(ikl):

if self.cschange(cski[i]) == '': # 有可能一个字符串全是0的情况

chk = chk + self.cschange(cski[i]) # 此时不需要将数字标识符引入

else:

chk = chk + self.cschange(cski[i]) + self.xdict[ikl - i] # 合并:前字符串大写+当前字符串大写+标识符

# 处理小数部分

ckj = cdata[1]

lenkj = len(ckj)

if lenkj == 1: # 若小数只有1位

if int(ckj[0]) == 0:

chk = chk + u'整'

else:

chk = chk + self.gdict[int(ckj[0])] + u'角整'

else: # 若小数有两位的四种情况

if int(ckj[0]) == 0 and int(ckj[1]) != 0:

chk = chk + u'零' + self.gdict[int(ckj[1])] + u'分'

elif int(ckj[0]) == 0 and int(ckj[1]) == 0:

chk = chk + u'整'

elif int(ckj[0]) != 0 and int(ckj[1]) != 0:

chk = chk + self.gdict[int(ckj[0])] + u'角' + self.gdict[int(ckj[1])] + u'分'

else:

chk = chk + self.gdict[int(ckj[0])] + u'角整'

return chk

if __name__ == '__main__':

pt = cnumber()

print(pt.cwchange('14524')) # 壹万肆仟伍佰贰拾肆元整

python数字转中文大写_python 数字转换为大写相关推荐

  1. python数字转中文字符_Python实现中文数字转换为阿拉伯数字的方法示例

    本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法.分享给大家供大家参考,具体如下: 一.需求 今天写了三千二百行代码. 今天写了3200行代码. 两行意思相同,只是表达方式不太能够,统一掉 ...

  2. python中int函数规则_python数字规则和内建函数

    python字符串补充: 字符串对象须当作参数的方法(非str.capitalize()形式): 1.str(obj)--将对象转化为字符串 2.len(str)--计算字符串长度 3.max(str ...

  3. python数字形式转换代码_Python数字(number)

    简介 数字(number)是不可更改的类型,因此变更数字会生成新的对象,重新分配内存空间. Python3中支持三种数值类型: 整型(int):又称整数.Python3中整型没有限制大小,因此不包括p ...

  4. python图片的高级处理_python数字图像处理(18):高级形态学处理

    形态学处理,除了最基本的膨胀.腐蚀.开/闭运算.黑/白帽处理外,还有一些更高级的运用,如凸包,连通区域标记,删除小块区域等. 1.凸包 凸包是指一个凸多边形,这个凸多边形将图片中所有的白色像素点都包含 ...

  5. python画椭圆形函数算法_python数字图像处理(12):基本图形的绘制

    图形包括线条.圆形.椭圆形.多边形等. 在skimage包中,绘制图形用的是draw模块,不要和绘制图像搞混了. 1.画线条 函数调用格式为: skimage.draw.line(r1,c1,r2,c ...

  6. 【关于工具类的使用】中文拼音首字母转换为大写

    业务场景:在我们实际业务开发中,会遇到生成较为开放类型的活动编号等,有对应的生成规则,比如需要将当前参与用户人名的中文拼音的首字母大小写取到,在加上时间戳信息等等.这里应用到一个解决方案. 1.导入相 ...

  7. python idea控制台中文乱码_python 解决cv2绘制中文乱码问题

    python 解决cv2绘制中文乱码问题 因为使用cv2.putText() 只能显示英文字符,中文会出现乱码问题, 因此使用PIL在图片上绘制添加中文,可以指定字体文件. 大体思路: OpenCV图 ...

  8. python能print中文吗_python怎么print汉字

    今天就为大家分享一篇python中使用print输出中文的方法,具有很好的参考价值,希望对大家有所帮助. 看Python简明教程,学习使用print打印字符串,试了下打印中文,不行.(推荐学习:Pyt ...

  9. python json loads 中文乱码_python实现智能语音天气预报

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 飞奔的帅帅 PS:如有需要Python学习资料的小伙伴可以加点击下 ...

最新文章

  1. [转载]地球物理经典书目——成像方向
  2. Linux之ubuntu的root无法连接FTP
  3. VSFTP服务--Linux学习笔记
  4. java数据库表不存在_如果Java生产代码中不存在并在JUnit中确认,则创建数据库表...
  5. 史上最全的微服务知识科普
  6. 转: SVN和Git的一些用法总结
  7. php 什么时候使用单例,php什么时候使用单例模式
  8. history模式 nginx配置_nginx反向代理部署vue项目(history模式)的方法
  9. 【MTSP】基于matlab粒子群优化蚁群算法求解多旅行商问题【含Matlab源码 1616期】
  10. 安卓psp模拟器哪个好_更完美!安卓PSP模拟器PPSSPP 0.9.9发布
  11. 什么是CPS模式盈利?
  12. 风险预测模型_慢乙肝患者的HCC风险预测模型——精准医学的希望|高分综述
  13. MATLAB并行计算
  14. web前端全栈0基础到精通(祺)10
  15. 计算机系统概论基本知识
  16. D3.js的技术预研
  17. 使用xadmin搜索search_fields报错:Related Field got invalid lookup: icontains
  18. ModuleNotFoundError: No module named ‘official‘
  19. oracle 数据库中 connect by 和level 的用法
  20. LCS LIS LICS

热门文章

  1. R3Det: Refined Single-Stage Detector with Feature Refinementfor Rotating Object论文学习
  2. Android之打开APP部分页面(Activity)的一瞬间手机状态栏会变成蓝色解决办法
  3. 远期、期货和互换(一)
  4. Android 使用高德SDK编写周边搜索定位
  5. 因果推断与因果性学习研究进展
  6. 最新引流脚本之窃语漂流瓶引流脚本,如何使用窃语脚本
  7. 吉林大学高级程序设计(红皮书例题)(1~7章)
  8. Python实战小项目—绘制玫瑰花送给女朋友叭
  9. Matlab LZW编码
  10. 基于Springboot的Java项目--新冠疫情统计系统