将阿拉伯数字转换成汉字数字的函数

可能看了标题会有点雾水,没关系,看了下面的函数就明白了,其过程就是将123这样的转成一二三。

将一串数字转成对应的汉字
function convertNumToStr(pNum)
dim oNum,rValue
oNum=pNum:rValue=""

'如果给定的不是合理的数字,则返回空串
if not CheckPattern(oNum,z_PatNum) then
ConvertNumToStr=rValue
exit function
end if

'将数字前面无用的0去掉
set rLjc=new RegExp
rLjc.Pattern="^0{2,}([^.])"
oNum=rLjc.Replace(oNum,"1")
rLjc.Pattern="^0{2,}(\.)"
oNum=rLjc.Replace(oNum,"01")

'将小数点前后部分分开
arrNum=split(oNum,".")
frontNum=arrNum(0)
backNum=""
if ubound(arrNum)>0 then backNum=arrNum(1)

'---- 转换小数点前面的数----
oLen=len(frontNum)

if oLen=1 then '只有一位
rValue=convertNumToCC(frontNum)
elseif oLen=2 then '只有两位
if(mid(frontNum,1,1))<>"1" then rValue=convertNumToCC(mid(frontNum,1,1))
rValue=rValue & getDigit(2)
if(mid(frontNum,2,1))<>"0" then rValue=rValue & convertNumToCC(mid(frontNum,2,1))
else '大于两位的情况
dim curPos,curNum,hasZero
hasZero=false '表明在此前有没有相连接的零
for i=1 to oLen
curPos=oLen-i + 1
curNum=mid(frontNum,i,1)
if cint(curNum)=0 then '当前位数为零
hasZero=true
'当当前位为万位或者亿位,则进行处理
if (curPos -1) mod 4=0 and curPos>4 then
rValue=rValue & getDigit(curPos)
end if
else '当前位数不是零
if hasZero then
rValue=rValue & "零"
hasZero=false
end if
rValue=rValue & convertNumToCC(curNum) & getDigit(curPos)
end if
next
end if

'转换小数点后面的
if backNum<>"" then
strBack=""
for i=1 to len(backNum)
strBack=strBack & convertNumToCC(mid(backNum,i,1))
next
rValue=rValue & "点" & strBack
end if
convertNumToStr=rValue
end function

''将一个数字转成对应的汉字
function convertNumToCC(pNum)
select case pNum
case 1:convertNumToCC="一"
case 2:convertNumToCC="二"
case 3:convertNumToCC="三"
case 4:convertNumToCC="四"
case 5:convertNumToCC=" 五"
case 6:convertNumToCC="六"
case 7:convertNumToCC="七"
case 8:convertNumToCC="八"
case 9:convertNumToCC="九"
case 0:convertNumToCC="零"
end select
end function

'根据位数返回对应的汉字
function getDigit(oDigit)
if (oDigit+2) mod 4=0 then
getDigit="十"
elseif (oDigit +1) mod 4=0 then
getDigit="百"
elseif oDigit mod 4=0 then
getDigit="千"
elseif (oDigit -1) mod 4=0 then
if ((oDigit-1)/4) mod 2=0 then
getDigit="亿"
else
getDigit="万"
end if
end if
end function
 

哈哈,很棒吧。有的时候(特别是比较正规的情况下),汉字格式好点

时间: 2024-08-06 20:39:42

将阿拉伯数字转换成汉字数字的函数的相关文章

Word2007将阿拉伯数字转换成大写数字方法

  在使用word2007时,我们经常会遇到平一些账目要使用数字大写,而大写数字还有许多人至今都不会写.不过没关系,今天小编来教大家在Word中轻松完成阿拉伯数字和大写数字的转换,你只需要输入阿拉伯数字,然后用Word转换一下,这些阿拉伯数字即可变成大写的数字!一起来看看Word2007将阿拉伯数字转换成大写数字方法吧! ①首先,选中需要转换的数字; Word2007将阿拉伯数字转换成大写数字方法 ②单击菜单栏的"插入"中的"数字"; Word2007将阿拉伯数字转

Word2007中如何将阿拉伯数字转换成大写数字?

  在编辑文档的时候,通常会键入一些数字,这些数字虽然在键入的时候比较容易,但是如果是一片相当重要的文档很可能发生数字被篡改的现象,并且在庄重场合下使用阿拉伯数字未免显得有点不正式,其实我们可以很快的将阿拉伯数字转换为大写数字,这样就会避免此类问题的发生了,具体的大家跟着小编一起去看看吧. 操作步骤 1.首先打开Word软件,在里面键入几个数字例如"56214",之后单击"插入"选型卡,在"符号"区域单击"编号"选项组; 2.

php 把数字转换成汉字的代码_php技巧

直接上实例,写到 千亿上了. /** * @author ja颂 * 把数字1-1亿换成汉字表述,如:123->一百二十三 * @param [num] $num [数字] * @return [string] [string] */ function numToWord($num) { $chiNum = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九'); $chiUni = array('','十', '百', '千', '万',

C#实现的【阿拉伯数字转换成中文大写金额】代码

大写|金额|中文|转换 以下C#代码实现了将阿拉伯数字转换成中文大写金额的功能,并Visual Studio.NET 2003 下调试基本通过(未经严格测试,希望各位发现错误后与作者联系fanz2000@sohu.com,或直接在csdn上回帖告知). 代码的主调函数为ConvertSum,它的参数是string类型的数字字符串.在ASP.NET中调用方式如下:Label1.Text=ConvertSum("数字字符串"); 其代码如下: //作者:fanz2000 //Email:f

怎样利用正则表达式把用URLEncode的字符串转换成正常的字符串函数

encode|函数|正则|转换|字符串 <script language=JavaScript RUNAT=SERVER>// 利用正则表达式把用URLEncode的字符串转换成正常的字符串函数function URLDecode(EncodeString) {  var lsRegExp = /\+/g;  return unescape(String(EncodeString).replace(lsRegExp, " ")); }</script> 使用例子

如何将16进制的转换成汉字啊 急急急!!请好心人帮忙

问题描述 我恢复出来的数据显示的都是16进制的看不懂如何能转换成汉字啊 解决方案 解决方案二: 解决方案三:System.Text.Encoding.Default.GetString(/*你的16进制数据*/); 解决方案四:是在什么地方输入这些啊?我不太懂哦,能说详细点嘛这些资料对我很重要!麻烦你了呢解决方案五:引用3楼leier_bao的回复: 是在什么地方输入这些啊?我不太懂哦,能说详细点嘛这些资料对我很重要!麻烦你了呢 先usingSystem.Text:你想在哪里处理就在那里处理解决

c语言-C语言,把大写字母转换成小写字母的函数,请问哪里错了?

问题描述 C语言,把大写字母转换成小写字母的函数,请问哪里错了? main.c #include int main(void) { char ch; for (; (ch = getchar()) != EOF;) { tolower(ch); putchar(ch); } } tolower.c void tolower(char ch) { if (ch >= 'A'&&ch <= 'Z') ch += 32; } 解决方案 你这种该法只是改变了形参的值,没有改变实参的值,

php把时间戳转换成多少时间之前函数的实例_php实例

如下所示: function wordTime($time) { $time = (int) substr($time, 0, 10); $int = time() - $time; $str = ''; if ($int <= 2){ $str = sprintf('刚刚', $int); }elseif ($int < 60){ $str = sprintf('%d秒前', $int); }elseif ($int < 3600){ $str = sprintf('%d分钟前', f

能用JS将我们的拼音转换成汉字吗?

问题描述 我只想简单的能将拼音转换成汉字啊!不需要那么精确啊!谁了解这方面的知识能介绍下啊!我的QQ:362077150 解决方案 解决方案二:http://hi.baidu.com/xingchengjie/blog/item/73ef49f5c8fe5422bc3109aa.html