设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 100|回复: 5
打印 上一主题 下一主题

各位好!数字转换问题!

[复制链接]
跳转到指定楼层
1#
发表于 2010-1-17 03:03:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位师哥师姐好!
小弟有一个问题想请教,例如:15986523.36转换大写人民币:壹仟伍佰玖拾捌万陆仟伍佰贰拾叁元叁角陆分整
又如:15000.52:壹万伍仟元伍角贰分整
请问这个程序怎么实现啊!
谢谢!!!!!!
2#
发表于 2010-1-17 03:03:46 | 只看该作者
重点考虑位数,数字转换成大写并不复杂,也就是1->壹,2->贰
关键是仟佰万等这些如何添加,请楼主自己再细心考虑下,遗憾的是,我时间有限不能帮你写
大致思路
从低位到高位依次添加拾、佰、仟
同时用四位四位的分治策略,递归组合每四位
比如
215986523
首先分治,2,1598,6523 2->贰,1598->壹仟伍佰玖拾捌,6523->陆仟伍佰贰拾叁
然后通过递归再组合成:贰亿壹仟伍佰玖拾捌万陆仟伍佰贰拾叁元
回复 支持 反对

使用道具 举报

3#
发表于 2010-1-17 03:03:50 | 只看该作者
<script language=vbscript>
function Money222(asdf)
thenumber=asdf
dim one(),onestr()//定义数组
String1 = "零壹贰叁肆伍陆柒捌玖"
String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分厘毫"
checkp=instr(thenumber,".")//判断是否含有小数位
if checkp<>0 then
thenumber=replace(thenumber,".","")//去除小数位
end if
length1=len(thenumber) //取得数据长度
redim one(length1-1)//重新定义数组大小
redim onestr(length1-1)//重新定义数组大小
for i=0 to length1-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-length1+i,1)
else//含有小数的数据其数字对应的单位
onestr(i)=mid(string2,15-length1+i+len(thenumber)-checkp,1)
end ifone(i)=one(i)&onestr(i)//将数字与单位组合
next
Money11=replace(join(one)," ","") //取得数组中所有的元素,并连接起来Money11=replace(Money11,"零万","万")
Money11=replace(Money11,"零亿","亿")
Money11=replace(Money11,"零仟","零")
Money11=replace(Money11,"零佰","零")
Money11=replace(Money11,"零拾","零")
do while not instr(Money11,"零零")=0
Money11=replace(Money11,"零零","零")
loop
Money11=replace(Money11,"零元","元")
Money222=Money11
end function
msgbox money222(12345678901)
</script>
回复 支持 反对

使用道具 举报

4#
发表于 2010-1-17 03:03:55 | 只看该作者
楼上的写的真不错 我也留了一份
你的代码好像没有限定金额的长度吧
要是输入一个很长的数就要报错了 呵呵
回复 支持 反对

使用道具 举报

5#
发表于 2010-1-24 15:05:03 | 只看该作者
楼主,你写得实在是太好了。我惟一能做的,就只有把这个帖子顶上去这件事了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 12:41 , Processed in 0.117395 second(s), 8 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表