如何把阿拉伯数字转换为中文大写?
之前在CSDN论坛里,看有人Show了一些把中文大写转换成阿拉伯数字的程序代码,自己也用Java语言实现了程序设计,基本上能够实现十万亿以内的任何数字的转换。之前也帖出自己的实现代码。
但我个人认为,把大写转换为数字实际上是没有多少意义的。因为很少有把大写转为数字的,大多数都是把数字转换为大写。何况把大写转为数字并不是一件很容易的事情,因为汉语大写有很多种说法,比如说:101,它的汉语说法可以有好多种:
(一)、百零一
(二)、一百零一
(三)、一百又一
(四)、幺零幺
因此,要实现起来其实是很难的。而且还要防止用户输入大小写不固定,一会输入“一百零一”,一会又输入“壹佰零壹”,或者是二者的杂合体。形式千变万化,何况这一个数字就可以有这么多种,还有那么多特殊的数字呢?除非用成统一标准的输入。否则是很容易出现问题的。
但是,数字转换成大写却是很实用的,平时去银行用得比较多,只要涉及金钱的时候,基本上都要求用大写。所以,这种转换看来是符合要求,因此,我用C#代码实现了其功能,并将用户输入用“,”分隔成三个一组的形式,可以实现百万亿级别的数字转换。下面我帖出部分代码,大家指正:
其他输入验证我就不帖出来了,只把核心代码帖出来
- class Chinese
- {
- public string returnResult(long num)
- {
- string numStr = num.ToString();
- //主要理念是把数字字符串最终分隔为四个一组四个一组的,不足的不管。
- if (numStr.Length > 8 & numStr.Length < 16)
- {
- //定义一个数组,存储整个字条串分隔后的字符串。然后两次递归调用。
- //调用完全后,得到总的大写字符串。
- string[] firstSplit = new string[2];
- firstSplit[0] = numStr.Substring(0, numStr.Length - 8);
- firstSplit[1] = numStr.Substring(numStr.Length - 8, 8);
- string result1 = getString(firstSplit[0]) + "億";
- string result2 = getString(firstSplit[1]);
- return result1 + result2;
- }
- else
- {
- return getString(numStr);
- }
- }
- //进行一次递归调用,得到两组四位数字的大字字串
- public string getString(string str)
- {
- if (str.Length > 4)
- {
- string[] secondSplit = new string[2];
- secondSplit[0] = str.Substring(0, str.Length - 4);
- secondSplit[1] = str.Substring(str.Length - 4, 4);
- string result1 = getRe(secondSplit[0]);
- string result2 = getRe(secondSplit[1]);
- //确定是否加“万”字
- if (!secondSplit[0].Equals("0000"))
- {
- result1 += "萬";
- }
- return result1 + result2;
- }
- else
- {
- return getRe(str);
- }
- }
- int[] value = { 1000, 100, 10 };
- //将四位数以内的字符串返回为正确的大写称呼 比如1234 返回:一千二百三十四
- public string getRe(string doWith)
- {
- char[] number = doWith.ToCharArray();
- int length = number.Length;
- string re = "";
- for (int i = 0; i < length; i++)
- {
- switch (number[i])
- {
- case '0':
- if (re.EndsWith("零"))
- {
- re += "";
- }
- else
- {
- re += "零";
- }
- break;
- case '1':
- re += "壹";
- break;
- case '2':
- re += "贰";
- break;
- case '3':
- re += "叁";
- break;
- case '4':
- re += "肆";
- break;
- case '5':
- re += "伍";
- break;
- case '6':
- re += "陆";
- break;
- case '7':
- re += "柒";
- break;
- case '8':
- re += "捌";
- break;
- case '9':
- re += "玖";
- break;
- }
- int index = (int)Math.Pow(10, length - i - 1);
- if (number[i].ToString() == "0")
- {
- index = -1;
- }
- switch (index)
- {
- case 1000:
- re += "仟";
- break;
- case 100:
- re += "佰";
- break;
- case 10:
- re += "拾";
- break;
- }
- }
- if (re.EndsWith("零"))
- {
- re = re.Substring(0, re.Length - 1);
- }
- return re;
- }
- }
CSDN下载地址:http://d.download.csdn.net/down/842756/yeah86
如何把阿拉伯数字转换为中文大写?相关推荐
- VB 阿拉伯数字转换为中文大写数值函数
Private Function CChinese(StrEng As String) As String If Not IsNumeric(StrEng) Or StrEng Like " ...
- 将阿拉伯数字转换为中文大写数字 —— pyhton实现
将阿拉伯数字转换为中文大写数字 -- pyhton实现 在银行的日常业务中,常常需要用到将阿拉伯数字转换为中文大写数字的 功能.这次实验将编写一个程序,将用户输入的阿拉伯数字代表的金额,转换为大写数字 ...
- Python:阿拉伯数字转换为中文大写数字(金额的读数规则)
萌萌帮班里同学做了一个python的编程作业,正好回顾一下python基础知识,以下源码和思考过程,代码全部原创. IDE:pycharm python版本:python3.7 ''' 实验目的:在银 ...
- 金额阿拉伯数字转换为中文大写
最近的做项目中需要弄一个金额是阿拉伯数字转为中文大写的金额,自己偷懒了,就总结一下. 第一种方法相对复杂 private static readonly String cnNumber = " ...
- Python 阿拉伯数字转换为中文大写数字
题目 python练习的一个小实验, 题目如下图: 附阿拉伯数字对应的中文大写: 思路 1. 通过定义一个字典进行阿拉伯数字与大写中文的对比储存 2. 将用户的输入首先分割为整数与小数部分分别进行处 ...
- 阿拉伯数字转换为中文大写数字
这个功能使用场景不多,百度也能找到很多相关代码,只不过我找了几个看的不是很明白,为了锻炼自己的思维能力,所以就干脆自己写了一个,不仅分享代码,同时也分享一下我的思路 JS代码 let moneyCas ...
- 正则也很牛,把阿拉伯数字的金额转换为中文大写数字
using System; using System.Text.RegularExpressions; class Program { // 把阿拉伯数字的金额转换为中文大写数字 static ...
- Lua阿拉伯数字转中文大写数字
function numberToString(szNum)---阿拉伯数字转中文大写local szChMoney = ""local iLen = 0local iNum = ...
- 阿拉伯数字和中文大写形式的相互转换
将阿拉伯数字转化为中文大写是很简单很实用的功能,但由于0这个特殊数字的存在使得实现起来并非那么容易,实现这一功能的关键就是对0的正确处理.该程序是我几个月之前写成的,当时没有加注释,现在程序的实现细节 ...
最新文章
- 一文详尽系列之EM算法
- 两个网站做到同一个服务器,两个网站放在同一个服务器 备案
- Android 使用RxJava--基础篇
- 业务需求、客户需求与功能需求
- k8s容器探针:就绪检测、存活检测
- Sun Cluster3.3+Oracle11g配置数据库资源问题
- SQL Server安装文件挂起错误解决办法
- 直击中关村创业大街,新街头霸王来了
- 2021年中国电影营销数字化发展分析
- 【Siddhi】Siddhi 如何表示布尔 Syntax error in SiddhiQL, mismatched input ‘boolean
- 川大计算机专业导师冯子亮,问问川大计算机研究生招收的小专业有哪些
- python爬虫从入门到放弃-python 爬虫《从入门到放弃》
- u深度重装系统详细教程_如何重装系统 U深度U盘重装系统教程
- 服务器收到syn包不回消息,TCP:SYN请求接收SYN响应代替SYN-ACK
- 伽罗瓦理论笔记暂记2
- 用C++(附源码)制作一款功能强大,自动偷菜QQ农场辅助!
- 【ice】飞冰快速上手笔记
- IconWorkshop英文版(带激活工具)
- 【渝粤教育】国家开放大学2018年秋季 0088-21T保险学概论 参考试题
- Some projects cannot be imported because their project description file is corrupted