直接上代码,每个步骤都有注释。难点在零的处理上。

# 用字典变量x来保存0~9,和中文大写
x = {0:'零', 1:'壹', 2:'贰', 3:'叁', 4:'肆', 5:'伍', 6:'陆', 7:'柒', 8:'捌', 9:'玖'}# 用元组变量y保存人民币金额的各种单位
y = ("元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","万","拾","佰","仟")# 用列表变量c来存储初步生成的结果
c=[]# 用字符串变量d来保存最后的结果
d=""# 接收键盘输入的阿拉伯数字以字符串形式存储在变量n中
n = input("请输入一个大于零不超过十五位的数字:")
while len(n)>15 or int(n)<=0:n = input("输入错误,请输入一个大于零不超过十五位的数字:")# 将字符串n换成大写的数字金额
k = len(n)-1
for i in n:j = int(i)c.append(x[j])c.append(y[k])k = k-1
print(c)    # 测试用,程序检测完需删除# 处理带有0的数字
# 先将c列表中的零都用x来替换,同时将零后的单位也用x替换;
# 但对元、万、亿这三个特殊单位不要替换。这三个单位是中文数字中的三个不同量级的基本单位,所以要保留。
k = len(c)-1
for i in range(k, 0, -2):if c[i-1]=='零':c[i-1]='x'if c[i] != '元' and c[i] != '万' and c[i] != '亿' and c[i-1] == 'x':       # 注意要满足前一位为0,即c[i-1] == 'x'c[i] = 'x'
# print(c)    # 测试用,程序检测完需删除# 确定哪些x需恢复'零',哪些需删除
# 在元、万、亿这些单位左面如果连续出现‘x’则这些"x"不需要恢复为零,我们先将这些不需要恢复的"x"标记为"y"
for i in range(k, 0, -1):if (c[i] == "元" or c[i] == "万" or c[i] == "亿") and c[i-1] == "x" or c[i] == "y" and c[i-1] == "x":c[i-1] = 'y'
# print(c)# 把需要的'零'恢复回来,即把位于最右侧的x恢复为"零"其余x保持不变。
k = len(c)-2
for i in range(k,0,-1):if c[i] == 'x' and c[i+1] != '零' and c[i+1] != 'x':c[i] = '零'
# print(c)# 多显示一个万字: 当位数超过9位,而且万位左侧连续三个数字位均为0时出现这一问题
k = len(c)
if k>=18 and c[k-16]=='y' and c[k-12]=='y' and c[k-14]=='y':c[k-9] = 'x'# 将c列表删除其中的'x'和'y',并转换为字符串格式输出。
for i in range(0, len(c)):if c[i] != 'x' and c[i] != 'y':d = d+c[i]
print(d)

将15位数字转换成人民币金额相关推荐

  1. 将数字转换成中文金额的大写形式

    package com.unteck.fms.web.businessdata.controller; import org.springframework.beans.factory.annotat ...

  2. 数字转换成人民币大写格式(带界面)

    今天看了算法的公开课,有一个把数字转换成人民币大写的算法. 后面就想着自己写一个界面的,好几天没有写一个完整的程序的. 当然有一些BUG,没有时间优化,后面在慢慢优化. 自己的名言:每天努力一点儿,总 ...

  3. 浮点数字转换成人民币的大写字体

    新开博客,贴上一段平常时写的代码,权当记录和分享. 下面是代码块(有比较详细的注释,转换过程中需要注意的是0的处理): //浮点数字转换成人民币的大写字体 import java.util.Scann ...

  4. EXCEL电子表格:将数字转换成英文金额

    在工作中可能用到在EXCEL中输入一个数字,可以自动转换成英文金额标识.EXCEL或WPS通过VBA自定义函数可以实现. 1. 新建Excel表格 2. 按住"AIt+F11"打开 ...

  5. 关于数字转换成人民币大写的问题

    我们在参与大型项目时,难免会遇到数值转换人民币大写的情况.因为我今天接触了一个这样的转换,但原代码存在BUG,转换经常出现问题.于是我就去网上搜索了相关资源.由于没有找到相对权威的转换代码,网上给出的 ...

  6. JAVA浮点数转人民币读法_算法--java实现将数字转换成人民币大写(迅雷面试题)...

    public classRmb {/*** 人民币的基本信息和操作 * *@authorsoyoungboy *@version1.0*/ private double number; //人民币的数 ...

  7. oracle数字转换成人民币大写

    网上找了好几篇博客,测试或多或少有问题,以下已验证可以使用. create or replace function cux_convert_cny(p_num in number default nu ...

  8. mysql金额数字转成中文_数字转换成汉字金额(转)

    1 2 3 //测试工程4 5 staticvoidMain(string[] args)6 7 {8 9 Console.WriteLine("请输入金额");10 11 str ...

  9. JAVA浮点数浮点数转换成人民币读法

    侵删! 在<疯狂JAVA讲义>第4章最后练习题中,第5题:编写一个程序,将浮点数转换成人民币读法字符串,例如,将1006.33转换成一千零六元三角三分. 这个题主要是一个逻辑判断的过程.首 ...

最新文章

  1. 设置***遇到一个小问题
  2. Oracle 11g Win10卸载 ,亲测
  3. UPS技术的“前世今生”【基础篇.PPT】
  4. 零基础入门NLP之搭建中文分词工具
  5. 34.35.热图(heatmap)、创建带注释的热图、使用辅助函数的代码样式、图像显示、图像插值、将图像数据导入Numpy数组、将numpy数组绘制为图像
  6. P2085 最小函数值 堆
  7. import java文件,java 文件夹操作,java文件夹,import java.
  8. C# 4.0 实现 Method Missing
  9. 为什么有人执着于只买黑色的手机?
  10. 概率论——随机变量和的期望
  11. 苹果cookie是打开还是关闭_如何避免苹果safari自带浏览器“跟踪”你的信息!
  12. 千兆光纤 GBIC和SFP接口规格介绍
  13. JIEDU7种EMI电磁屏蔽材料介绍
  14. Android自定义-滑动缩放渐变填充曲线折线图表
  15. 详解利用基于gensim的TF-IDF算法实现基于文本相似度的推荐算法
  16. 如何学习opencv源码
  17. 讨论java类的图书推荐
  18. 一文带你读懂“亚当理论”的精髓:期货股票交易操作守则与操作技巧
  19. 运放的单电源供电与双电源供电的区别
  20. Endnote 中批量导出PDF

热门文章

  1. 2023年上半年软考程序员考试总结体会
  2. 【测控电路】V/f转换器
  3. ERP系统维护的心得,需要的工作技能
  4. 中国石油大学(北京)《线性代数》在线考试答案
  5. 中国商业油库及码头行业运行动态分析及投资规划建议研究报告2022年版
  6. 有效跳槽 VS 无效跳槽
  7. 解决执行`sudo apt-get install`命令出现`Could not get lock`错误
  8. usb万能驱动win7_win7还是win10?选对系统你就是国服最强王者
  9. GHOSTXPSP3电脑爱好者V9.9装机版
  10. i5 12600kf和i5 10400f 选哪个