数字金额转换为大写金额python_python 数字转换为大写
在会计的时候,用到将数字转换为大写,也就是讲数字转为汉字
外汇出入金流程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 数字转换为大写相关推荐
- 数字金额转大写金额 工具类
数字金额转大写金额 工具类 代码如下: /** 金额转为汉字大写* @return* @throws* @author TomatoYan*/ public class NumberToCN {/*汉 ...
- PHP数字金额转换大写金额(20191122再次修改版)
今天在博客园看到有文章在讲"PHP数字金额转换大写金额", 于是我抽时间也写了一个. 不多说, 把代码发上来: /*** 将数值金额转换为中文大写金额* @param $amoun ...
- 数字金额转化大写金额
/*** 数字金额转化大写金额* @param val string/number(字符串可包含'¥'和多余的0)* @returns {*}* 原生方法*///代码如下所示:function con ...
- PHP实现数字金额轻松转成中文繁体大写
if (!function_exists('rmb_capital')) {/*** 金额转中文大写** @param mixed $amount* @return string*/function ...
- JS数字金额转为大写金额
2019独角兽企业重金招聘Python工程师标准>>> /** 数字金额大写转换(可以处理整数,小数,负数) */ function smalltoBIG(n) { var frac ...
- 人民币数字金额转大写金额
public class t {public static String Trans2RMB(String money) {int index = money.indexOf("." ...
- 将数字金额转换为中文大写金额
/*------Oracle数据库------*/ 在存储过程中,将数据中的金额小写转大写的函数. create or re ...
- 【Java】将数字金额转换为大写中文金额
package com.ruoyi.test;import org.apache.commons.lang3.StringUtils;/*** @Title: ConvertUpMoney* @Des ...
- 将数字金额转换为中文大写金额(在网上找的)
/*------Oracle数据库------*/ 在存储过程中,将数据中的金额小写转大写的函数. create or re ...
最新文章
- FPGA与ASIC:它们之间的区别以及使用哪一种?
- Fedora 23如何安装LAMP服务器
- 【ROM修改教程】添加高级电源重启菜单(安卓4.0.4官方ROM)
- 物生政可以报计算机专业吗,新高考物生政组合好吗?高考物生政可以报什么专业?...
- Easyui 异步树直接所有展开
- 关于各种JOIN连接的解释说明【原创】
- java生产者消费者模型到精通_java生产者消费者模型
- 将jar文件加到Maven的local repository中
- 百科知识 epub文件如何打开
- 心电电路算法滤波_心电仪滤波
- oracle如何某个字段去重复的数据,Oracle 去重复的数据
- ai人工智能的数据服务_AI如何帮助提高企业数据质量
- 一姐们知道她老公外面有小三后,不但没哭没闹,反而对她老公特别好
- NLP 学习教程 第一节 简介
- ORA-03113 end-of-file on communication channel 问题解决
- 投资理财入门18本经典书籍
- 虚荣设备未能连接至服务器,虚荣无法连接服务器怎么办
- python 面试题 博客园_常见的python面试问题1
- 照片做视频哪个软件好?简单但好用
- 通过 Github Actions 部署 Mkdocs 文档