asp版阿拉伯数字转换成汉字大写

asp版阿拉伯数字转换成汉字大写

ID:8958104

大小:15.07 KB

页数:4页

时间:2018-04-13

asp版阿拉伯数字转换成汉字大写_第1页
asp版阿拉伯数字转换成汉字大写_第2页
asp版阿拉伯数字转换成汉字大写_第3页
asp版阿拉伯数字转换成汉字大写_第4页
资源描述:

《asp版阿拉伯数字转换成汉字大写》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、前言最近,在自己在练习写ASP程序,遇到一个需要将数字转换成汉字大写的问题,于是在网上找了很多相关的东西,真正ASP版的算法的,却是不尽如意,主要是先将数字一一对应转换成汉字,然后再将汉字中重复的零替换掉。这种写法直观,但是我不喜欢,于是自己动手写一个。终于搞出来了。其中或多或少有不足之处,若您下载了本算法,欢迎指出我的不足,我定会将之改进。目前这个样子经我测试没有问题。以下是算法内容'-----------------------------------阿拉伯数字转换为大写汉字---------------------------

2、'本程序仅适用千亿(整数部分12位)级别的转换,超出此范围就无法转换'作者:Alex'本程序版权归本人所有,本程序的算法与网上所找的均不相同,至少我所查询的都不符合我的要求'本程序所实现的功能由两个函数实现ChanFourBitNum(Num,ct)及AlexChanArabir2Chinese(WhichNum,ChineseType)'ChanFourBitNum(Num,ct)'此函数功能是将一个小于或等于4位的整数转换成几千几百几十几的格式,并且能将小数部分保留二位小数转换成几角几分'Num此参数仅只能是正整数或者纯小数(例

3、如:1234或0.123),ct表示所要转换的格式'ct所表示的格式有两种,一种(ct=0)是大写的壹贰叁这种格式,也仅只有这种格式时前面的Num才可以传递纯小数,此格式作用是用来转换人民币数字'另一种(ct=1)是转换成一二三这种格式,这种格式下Num仅支持正整数,哪怕传递了小数也不显示''AlexChanArabir2Chinese(WhichNum,ChineseType)'此函数功能是对参数WhichNum进行处理,分成若干分,并将每份的最大数位定为4,并将此4位数传递到ChanFourBitNum中进行处理,在收到返回值后

4、'继续进行处理,并将各个阶段处理的结果连接成最终结果。'WhichNum,即你要处理的数字,ChineseType同上面的ct参数说明'使用时只需调用AlexChanArabir2Chinese(WhichNum,ChineseType)即可'本算法虽然不是最好的,但是我认为比网上所流行的替换法要好得多,虽然替换法比较容易理解,但是我这个效率上应该比那个要好。functionChanFourBitNum(Num,ct)dimBitArr(3),NumArr(10)dimlenth,i,j,temp,str,temNumifct=1t

5、henBitArr(0)="十"BitArr(1)="百"BitArr(2)="千"NumArr(0)="零"NumArr(1)="一"NumArr(2)="二"NumArr(3)="三"NumArr(4)="四"NumArr(5)="五"NumArr(6)="六"NumArr(7)="七"NumArr(8)="八"NumArr(9)="九"elseifct=0thenBitArr(0)="拾"BitArr(1)="佰"BitArr(2)="仟"NumArr(0)="零"NumArr(1)="壹"NumArr(2)="贰"NumAr

6、r(3)="叁"NumArr(4)="肆"NumArr(5)="伍"NumArr(6)="陆"NumArr(7)="柒"NumArr(8)="捌"NumArr(9)="玖"endifstr=""temp=Numifnot(temp>0andtemp<1)thenlenth=len(temp)j=lenth-2fori=1tolenthtemNum=mid(temp,i,1)ifj>=0theniftemNum<>0then'判断当前数是否为0str=str&NumArr(temNum)&BitArr(j)'如果当前数是0那么再判断下

7、一个数是否是0,如果不是0那么就执行这一步,如果是0就什么都不执行,这样就保证了连续出现零的时候,始终只输出一个0elseiftemNum=0andmid(temp,i+1,1)<>0thenstr=str&NumArr(temNum)endifelseiftemNum<>0thenstr=str&NumArr(temNum)endififlenth=1andtemNum=0thenstr=NumArr(temNum)endifendifj=j-1nextelseifct=0thentemp=mid(temp,3,4)str=str

8、&NumArr(mid(temp,1,1))&"角"str=str&NumArr(mid(temp,2,1))&"分"endifChanFourBitNum=strendfunctionfunctionAlexChanArabir2C

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。