标题:求解,人民币小写转大写的问题!
只看楼主
greatyollow
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-10-4
 问题点数:0 回复次数:16 
求解,人民币小写转大写的问题!
运行后结果为:贰佰贰拾贰亿贰仟贰佰贰拾贰万贰仟贰佰贰拾贰元
(长度为11,小写为22222222222,也就是第二句中的那个数)
直接改这个数可以得到正解.

怎么改才行,请朋友们指教!

代码如下
<% if rs.eof Then
call Money(22222222222)
function Money(thenumber)
dim n,String1,String2,length
dim one(),onestr()
String1="零壹贰叁肆伍陆柒捌玖"
String2="万仟佰拾亿仟佰拾万仟佰拾元"
length=len(thenumber)
redim one(length-1)
redim onestr(length-1)
for n=0 to length-1
one(n)=mid(thenumber,n+1,1)
one(n)=mid(string1,one(n)+1,1)
onestr(n)=mid(string2,14-length+n,1)
one(n)=one(n)&onestr(n)
next
Money=replace(join(one)," ","")
Money=replace(Money,"零元","元")
Money=replace(Money,"零万","万")
Money=replace(Money,"零亿","亿")
Money=replace(Money,"零仟","零")
Money=replace(Money,"零佰","零")
Money=replace(Money,"零拾","零")
do while not instr(Money,"零零")=0
Money=replace(Money,"零零","零")
loop
end function
%>
搜索更多相关主题的帖子: 人民币 小写 求解 length 
2007-10-05 11:49
月夜
Rank: 1
等 级:新手上路
威 望:1
帖 子:90
专家分:0
注 册:2007-9-5
得分:0 

好晕


自己写整站 累死个王八蛋
2007-10-05 11:58
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
得分:0 
试试UCase函数,这个说的不对,只能对字母转换,数字不起作用,抱歉!

[此贴子已经被作者于2007-10-5 13:03:20编辑过]


2007-10-05 12:53
greatyollow
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-10-4
得分:0 
我是初学者,能不能说细一点!!
2007-10-05 13:00
greatyollow
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-10-4
得分:0 
我说的是123456元,转换为壹拾贰万叁仟肆佰伍拾陆元
2007-10-05 13:07
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
得分:0 
楼上参考一下这个贴子,和你说的基本上一致,而且有注释的
[url]http://www.im486.com/Article/NET/ASPJS/ASPJC/200509/1639.shtml?ArticleID=1639[/url]
2007-10-05 13:07
greatyollow
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-10-4
得分:0 
谢谢
2007-10-05 13:25
greatyollow
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-10-4
得分:0 
刚刚看过了:
两个问题:1、变量Money不能重新定义?2、运行结果问题同上。

仍然表示感谢,万分感谢!!
2007-10-05 13:31
greatyollow
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-10-4
得分:0 
2007-10-05 13:41
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
得分:0 

把dim那一行删掉
程序如下


<%call Money(333333333333)
function Money(thenumber)
//dim Money,i,String1,String2,length,checkp'定义变量
dim one(),onestr()'定义数组
String1 = "零壹贰叁肆伍陆柒捌玖"
String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分厘毫"
checkp=instr(thenumber,".")'判断是否含有小数位
if checkp<>0 then
thenumber=replace(thenumber,".","")'去除小数位
end if
length=len(thenumber) '取得数据长度
redim one(length-1)'重新定义数组大小
redim onestr(length-1)'重新定义数组大小
for i=0 to length-1
one(i)=mid(thenumber,i+1,1) '循环取得每一位的数字
one(i)=mid(string1,one(i)+1,1)'循环取得数字对应的大写
if checkp=0 then
'不含有小数的数据其数字对应的单位
onestr(i)=mid(string2,14-length+i,1)
else
'含有小数的数据其数字对应的单位
onestr(i)=mid(string2,15-length+i+len(thenumber)-checkp,1)
end if
one(i)=one(i)&onestr(i)'将数字与单位组合
next
Money=replace(join(one)," ","") '取得数组中所有的元素,并连接起来
Money=replace(Money,"零元","元")
Money=replace(Money,"零万","万")
Money=replace(Money,"零亿","亿")
Money=replace(Money,"零仟","零")
Money=replace(Money,"零佰","零")
Money=replace(Money,"零拾","零")
do while not instr(Money,"零零")=0
Money=replace(Money,"零零","零")
loop
response.write Money '显示结果
end function
%>
红色的是你要调用的,Money(333333333333),函数是Money,333333333333是参数,根据实际情况调整就可以了。

[此贴子已经被作者于2007-10-5 13:46:15编辑过]

2007-10-05 13:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-175186-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.440792 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved