一个产生中文累计数的代码片断

中文

为了业务的需要无聊之极的写了一个输出中文数字的方法,效率上勉强过得去,如果你有什么更好的方法,跟贴吧。

 1
 2        /**//// <summary>
 3        /// 中文计数
 4        /// </summary>
 5        /// <param name="num">[1 - 99999]</param>
 6        /// <returns></returns>
 7        public static string NumToChineseNumStr(int num)
 8        {
 9            if(num <= 0 || num > 99999)
10                throw new ArgumentException("num");
11            string[] GradeChar = new string[]{"","十","百","千","万"};
12            string[] DigitChar = new string[]{"一","二","三","四","五","六","七","八","九"};
13            char zero = '零';
14
15            int length = (int) Math.Log10(num) + 1;
16            StringBuilder output = new StringBuilder(length);
17            int[] input = new int[length];
18            int index = -1;
19            while(++index != length)
20            {
21                input[index] = (num  / (length - index == 1? 1 : (int)Math.Pow(10, length -index -1))) % 10;
22            }
23
24            bool needFix = false;
25            if(input.Length == 2 && input[0] == 1)
26                needFix = true;
27
28            for(int pos = 0; pos < input.Length; pos ++)
29            {
30                if(input[pos] == 0)
31                {
32                    if(output[output.Length -1] != zero)
33                        output.Append(zero);
34                    continue;
35                }
36                else if(!(pos == 0 && needFix))
37                {
38                    output.Append(DigitChar[input[pos] -1]);
39                }
40                output.Append(GradeChar[input.Length - pos -1]);
41            }
42            if(output[output.Length - 1] == zero)
43                output.Remove(output.Length - 1, 1);
44            return output.ToString();
45        }
46

时间: 2025-01-29 17:33:45

一个产生中文累计数的代码片断的相关文章

充分利用Dreamweaver CS3的代码片断功能面板

打开Dreamweaver CS3-窗口-代码片断或者按快捷键Shift+F9 你将看到右侧面板中出现了代码片断功能面板 可以使用现有的代码片断,当然你也同样可以定义自己的代码库 点击右键新建一个文件夹用一个自己喜欢的名字命名,用同样的方法点击右键新建代码片断 在根据需要选用环绕选定内容还是插入块. 定制好后确定 以后需要用时只要把鼠标放到要插入代码的位置,然后打开代码片断面板双击你要插的代码片断,OK!是不是很简单啊? 当然如果我们在这台机器定义了很多代码,到别的机器就用不了了,怎么办,别着急

C++ Builder常用代码片断

本文中包含了一些常用的代码片断,看看想想或许有他山之石可以攻玉的可能. 删除别名中所有的表.纯虚函数.虚函数.启动页面.指针.为指针解除引用.表的For循环变量与常量的声明.检查表是否存在.组件的类名.剪贴板中的文字.字符流.检查表是否已打开表的状态操作.改变PageControl的标签.向Query传递参数 日期属性 绘制状态条删除别名中所有的表 void TData::CleanTemp() { TStringList *myTables = new TStringList(); TTabl

Python随机生成一个6位的验证码代码分享

 这篇文章主要介绍了Python随机生成一个6位的验证码代码分享,本文直接给出代码实例,需要的朋友可以参考下     1. 生成源码   代码如下: # -*- coding: utf-8 -*-   import random def generate_verification_code(): ''' 随机生成6位的验证码 ''' code_list = [] for i in range(10): # 0-9数字 code_list.append(str(i)) for i in range

《Adobe Flash CS5 ActionScript 3.0中文版经典教程》——1.3 使用代码片断添加ActionScript

1.3 使用代码片断添加ActionScript Flash影片主时间轴上的任意一个关键帧以及影片剪辑元件里的任意一个关键帧,都可以添加ActionScript代码.在编译后的Flash项目的播放过程中,当播放到某一帧时,如果其中包含代码,它们就会被执行. Flash里所有时间轴上的代码都在"动作"面板里编写,从Flash里的"窗口"菜单中可以打开它,或者按F9键(Windows)或Option+F9组合键(Mac). 在后面的课程里还会介绍如何在外部ActionS

c-如何定义并初始化一个包含中文字符的数组

问题描述 如何定义并初始化一个包含中文字符的数组 如题,在这段代码中 char str[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; for(int i=0;i<10;i++) printf("%cn",str); 输出总为乱码怎么办? 解

求代码 代码-求用C++写任意整数转换成中文大写的代码

问题描述 求用C++写任意整数转换成中文大写的代码 我正在学习C++,才开始不懂怎么写,还没有理清头绪,希望有人能帮我写一下,我好有一个指路灯,谢谢 解决方案 CString ChineseCapitalMoney(double Num) { CString szChMoney,szNum; int iLen, iNum, iAddZero=0; TCHAR* hzUnit[18]={_T("分"),_T("角"),_T("元"),_T(&quo

[Domino]Java访问Domino邮件代码片断[3]

[Domino]Java访问Domino邮件代码片断[3] 编写者 日期 关键词 郑昀@ultrapower 2005-7-1 Java Domino   转发用户收件箱中的某一封邮件 3个知识点: 1:需要通过noteID来定位该邮件: Database dbMail = sNotes.getDatabase(sNotes.getServerName(),                       mailfile, false); Document doc = dbMail.getDocu

Python随机生成一个6位的验证码代码分享_python

1. 生成源码 复制代码 代码如下: # -*- coding: utf-8 -*- import random def generate_verification_code():     ''' 随机生成6位的验证码 '''     code_list = []     for i in range(10): # 0-9数字         code_list.append(str(i))     for i in range(65, 91): # A-Z         code_list.

BootStrap点击下拉菜单项后显示一个新的输入框实现代码_javascript技巧

我的页面上有一个下拉菜单,页面上有一个文本输入框,一个图像上传框,文本输入框默认是显示的,而图片上传框是隐藏的. 假设下拉菜单有两项A和B,我想实现这样的效果:点击A时显示文本输入框,隐藏图像输入框:点击B时显示图像上传框,隐藏文本输入框,请问怎么实现? 用firebug调试的时候发现只有在加载html页面的时候几个click函数才会执行,页面加载好后点击下拉菜单项,这些断点都不会被执行,求解是怎么回事. 我的js代码如下(定义在<head>部分中): <script type=&quo