本文实例为大家分享了python实现人民币大写转换的具体代码,供大家参考,具体内容如下

#!/usr/bin/python

# -*- coding:utf-8 -*-

# ********* 转换方法介绍 *********

# 将需要转换的数字从右向左,每4位分成一个section,如:24530467103,将该数字拆分后,得到:

# 245 3046 7103 (245亿3046万7103)

# 对拆分后的数字先按照section进行数字到汉字的转换,然后添加数值单位,如:仟,佰,拾,处理结束后可以得到转换后的序列。

# 对section处理结束后,再对每个section进行单位的追加。如:兆、亿、万。

# 这里需要注意一些特殊情况,如:section中连续出现0,最后一个数字为0等。

DEBUG = True

upper = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"]

decimal_unit = ["角", "分", "厘", "毫"]

section_unit = ["万", "亿", "兆"]

count_unit = ["拾", "佰", "仟"]

def dbg_print(s):

if DEBUG:

print(s)

def split_num(num):

num_list = []

if (len(num) <= 4):

num_list.append(num)

return num_list

while (len(num)):

if (len(num) <= 4):

num_list.append(num)

num_list.reverse()

return num_list

sec = num[-4:]

num_list.append(sec)

num = num[:-4]

# 处理小数部分,只支持4位,多于4位,四舍五入。

def convert_dec(num):

result = ""

count = 0

dbg_print(num)

for i in num:

n = int(i)

if (0 != n):

result += upper[n]

result += decimal_unit[count]

count += 1

dbg_print(result)

return result

# 处理整数部分

def convert_int(num):

section_list = split_num(num)

dbg_print(num)

dbg_print(section_list)

result = ""

sec_index = len(section_list) - 2

for item in section_list:

index = len(item) - 2

# 统计连续出现的数字0的个数。

flag = 0

# 计算遍历过的item中的字符数。

count = 0

# 对每个section进行处理,得到数字对应的汉字。

for i in item:

n = int(i)

if (0 == n):

flag += 1

else:

flag = 0

# 用来区分section的最后一位为0的情况

if (count != len(item)-1):

# 该位置的数字为0,并且它的下一个数字非0。

if ((flag >= 1) and ('0' != item[count+1])):

result += upper[n]

else (0 != n):

result += upper[n]

else:

# section的最后一个数字非0的情况。

if (0 != n):

result += upper[n]

# 最后一个数字以及数字为0时,都不需要添加单位。

if ((index >= 0) and (0 != n)):

result += count_unit[index]

index += 1

count += 1

从第1个section开始,如果section中的数字不全为0,其后就需要添加section对应的单位。

if (sec_index >= 0 and flag != count):

result += section_unit[sec_index]

dbg_print(result)

sec_index -= 1

result = result.replace("壹拾", "拾")

result += "元"

return result

# 转换函数

def convert(num):

result = ""

num = round(float(num), 4)

integer,decimal = str(num).split('.')

result_int = convert_int(integer)

result_dec = convert_dec(decimal)

if (len(result_dec) == 0):

result = result_int += "整"

else:

result = result_int + result_dec

return result

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2018-06-18

python人民币转大写_python实现人民币大写转换相关推荐

  1. python咋变汉语_python实现将汉字转换成汉语拼音的库

    本文实例讲述了python实现将汉字转换成汉语拼音的库.分享给大家供大家参考.具体分析如下: 下面的这个python库可以很容易的将汉字转换成拼音,其中用到了一个word.data 的字典,可点击此处 ...

  2. python数字转中文大写_python 数字转换为大写

    在会计的时候,用到将数字转换为大写,也就是讲数字转为汉字 外汇出入金流程https://www.fx61.com/supportclass cnumber: cdict = {} gdict = {} ...

  3. python 时分秒毫秒_python将时分秒转换成秒的实例

    处理数据的时候遇到一个问题,从数据库里导出的数据是时分秒的格式:hh:mm:ss ,现在我需要把它转换成秒,方便计算. 原数据可能分两种情况,字段有可能是文本字符串类型的,也有可能是时间类型,他们的处 ...

  4. python获取月份字符串_Python时间获取及转换知识汇总

    时间处理是我们日常开发中最最常见的需求,例如:获取当前datetime.获取当天date.获取明天/前N天.获取当天开始和结束时间(00:00:00 23:59:59).获取两个datetime的时间 ...

  5. python下载迅雷资源_python将下载地址转换成迅雷跟qq旋风的下载地址

    python将下载地址转换成迅雷和qq旋风的下载地址 迅雷和qq旋风下载,有加速和离线功能,很方面,我是在网上看到的原始地址和迅雷地址,qq旋风地址的转化原理,然后用python+pyqt写了一个客户 ...

  6. python画素描画_python如何将图片转换素描画

    代码如下 # -*- coding:utf-8 -*- import cv2 import numpy as np from tkinter import filedialog, Tk from os ...

  7. python照片转素描_python如何将图片转换素描画

    代码如下 # -*- coding:utf-8 -*- import cv2 import numpy as np from tkinter import filedialog, Tk from os ...

  8. python类型转换astype时间_python – 使用astype()无法转换Timedelta对象

    原生Pandas Timedelta()(版本0.20.3)无法使用astype()转换为特定频率,尽管文档说它应该是可能的.我想弄清楚我错过了什么. Timedelta Series, Timede ...

  9. php人民币小写转大写函数,php 人民币小写怎么转大写

    php人民币小写转大写的方法:首先创建一个PHP示例文件:然后通过"function num2rmb($number = 0, $int_unit = '', $is_round=FALSE ...

  10. php大写转为小写,PHP 实现人民币小写转换成大写的方法及大小写转换函数

    php 的 PHP 实现人民币小写转换成大写的方法及大小写转换函数 下面一段代码给大家分享php实现人民币大小写转换的方法,具体代码如下所示: header("charset=utf-8;& ...

最新文章

  1. PAT (Advanced Level) 1014. Waiting in Line (30)
  2. 外包公司派遣到网易,上班地点网易大厦,转正后工资8k-10k,13薪,包三餐,值得去吗?...
  3. Web API应用架构设计分析(1)
  4. 天眼探空经济发展_【砥砺奋进的五年】观神州 惠民生:“天眼”探空惊艳全球...
  5. reactjs DOM的Diffing算法
  6. c++和python先学哪个?
  7. 打造极致体验:字节跳动亿级 DAU 背后的音视频技术最佳实践
  8. 优化函数html代码,CSS代码优化方法
  9. Django从理论到实战(part25)--数据库操作
  10. javascript --- 对象属性的深层次获取
  11. MongoDB 数组类型查询 —— $elemMatch 操作符
  12. php基础知识总结大全,php基础知识回顾 —— 常量
  13. 机器学习相关从业者如何兼顾理论与工程能力
  14. 计算机网络技术专业的规划,计算机网络技术专业建设规划
  15. android删除打开方式,Android 打开方式选定后默认了改不回来?解决方法(三星s7为例)...
  16. tensorflow保存内容到相对文件路径下_如何添加自定义文件系统插件
  17. 2017-2018-1 20155229 实验五 《通讯协议设计》
  18. 使用mybatis-generator工具加快开发速度
  19. html 数据库 编写学生表,【数据库】用sql语句创建学生表如何做
  20. 鸿蒙开发工具下载设置Mac

热门文章

  1. mysql游标少循环_掌握更少的后卫和循环
  2. CSS3 1 CSS3 响应式布局 1.1 媒体查询
  3. 计算机本科科研什么项目,本科生做科研:大势所趋?
  4. 使用快捷指令和carplay发送停车位置(高德地图)
  5. 集合的概念以及集合框架的介绍
  6. 计算机第四轮学科评估排名,最权威中国高校学科排名,全国第四轮学科评估结果出炉!...
  7. pdf关键字高亮 java_Java PDF查找和高亮文本-Go语言中文社区
  8. c51单片机渐变流水灯汇编语言,单片机闪烁灯流水灯汇编代码大全
  9. Unity笔记-05
  10. h5页面生成图片分享到微信js_H5网页实现微信分享功能