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

外汇出入金流程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. 数字金额转大写金额 工具类

    数字金额转大写金额 工具类 代码如下: /** 金额转为汉字大写* @return* @throws* @author TomatoYan*/ public class NumberToCN {/*汉 ...

  2. PHP数字金额转换大写金额(20191122再次修改版)

    今天在博客园看到有文章在讲"PHP数字金额转换大写金额", 于是我抽时间也写了一个. 不多说, 把代码发上来: /*** 将数值金额转换为中文大写金额* @param $amoun ...

  3. 数字金额转化大写金额

    /*** 数字金额转化大写金额* @param val string/number(字符串可包含'¥'和多余的0)* @returns {*}* 原生方法*///代码如下所示:function con ...

  4. PHP实现数字金额轻松转成中文繁体大写

    if (!function_exists('rmb_capital')) {/*** 金额转中文大写** @param mixed $amount* @return string*/function ...

  5. JS数字金额转为大写金额

    2019独角兽企业重金招聘Python工程师标准>>> /** 数字金额大写转换(可以处理整数,小数,负数) */ function smalltoBIG(n) { var frac ...

  6. 人民币数字金额转大写金额

    public class t {public static String Trans2RMB(String money) {int index = money.indexOf("." ...

  7. 将数字金额转换为中文大写金额

    /*------Oracle数据库------*/                                       在存储过程中,将数据中的金额小写转大写的函数. create or re ...

  8. 【Java】将数字金额转换为大写中文金额

    package com.ruoyi.test;import org.apache.commons.lang3.StringUtils;/*** @Title: ConvertUpMoney* @Des ...

  9. 将数字金额转换为中文大写金额(在网上找的)

    /*------Oracle数据库------*/                                       在存储过程中,将数据中的金额小写转大写的函数. create or re ...

最新文章

  1. FPGA与ASIC:它们之间的区别以及使用哪一种?
  2. Fedora 23如何安装LAMP服务器
  3. 【ROM修改教程】添加高级电源重启菜单(安卓4.0.4官方ROM)
  4. 物生政可以报计算机专业吗,新高考物生政组合好吗?高考物生政可以报什么专业?...
  5. Easyui 异步树直接所有展开
  6. 关于各种JOIN连接的解释说明【原创】
  7. java生产者消费者模型到精通_java生产者消费者模型
  8. 将jar文件加到Maven的local repository中
  9. 百科知识 epub文件如何打开
  10. 心电电路算法滤波_心电仪滤波
  11. oracle如何某个字段去重复的数据,Oracle 去重复的数据
  12. ai人工智能的数据服务_AI如何帮助提高企业数据质量
  13. 一姐们知道她老公外面有小三后,不但没哭没闹,反而对她老公特别好
  14. NLP 学习教程 第一节 简介
  15. ORA-03113 end-of-file on communication channel 问题解决
  16. 投资理财入门18本经典书籍
  17. 虚荣设备未能连接至服务器,虚荣无法连接服务器怎么办
  18. python 面试题 博客园_常见的python面试问题1
  19. 照片做视频哪个软件好?简单但好用
  20. 通过 Github Actions 部署 Mkdocs 文档

热门文章

  1. 使用.NET处理条形码
  2. Spring AOP aspectjweaver.jar包
  3. spring framework 4 学习之路 1 -- 框架概述
  4. 网络信息安全笔记—逻辑漏洞
  5. JDY-10M BLE组网模块介绍
  6. MATLAB实现算术编码
  7. Android 获取手机基本信息,版本号,制造商等
  8. EasyGBS中基于 RTP 的音视频数据 PS 封装
  9. 图像拼接算法总结(二)
  10. 创建C#控制台应用程序