XiaoHui.net 笑汇程序员论坛首页
工作并快乐着,职业并休闲着
寻梦的岁月从不言辛苦几许,
不问收获几多……
» 游客:  申请新用户 | 登录 | 会员 | 统计 | 帮助 » XiaoHui.Net 笑汇程序员论坛 | 纯文字版 | 全站索引 | XiaoHui.com


请大家帮看看有问题吗

RSS 订阅当前论坛  

上一主题 下一主题
     

标题: 请大家帮看看有问题吗  
 
易人
传说中的水手
Rank: 5Rank: 5



UID 70
精华 0
积分 809
帖子 809
阅读权限 1
注册 2002-4-22
来自 山东省
状态 离线
请大家帮看看有问题吗

好几年不写代码了,今受朋友之托,写了个小东西,担心里面有bug,要有高手过来,麻烦看看,或有更好的代码,发一个用用,不胜感激。

在foxpro里写的,将以万元为单位的货币转换成大写



*--- 货币小写转换成大写--------

local ss,cc,i,j,mark0,dw(14),dx(14),dd

FUNCTION Xtod(nXiao)

dw(1)="分"
dw(2)="角"
dw(3)="元"
dw(4)="拾"
dw(5)="佰"
dw(6)="仟"
dw(7)="万"
dw(8)="拾"
dw(9)="佰"
dw(10)="仟"
dw(11)="亿"
dw(12)="拾"
dw(13)="佰"
dw(14)="仟"

for j=1 to 14
  dx(j)=""
endfor

ss=alltrim(str(nXiao*1000000))
ss=strtran(alltri(ss,"0","零")
ss=strtran(ss,"1","壹")
ss=strtran(ss,"2","贰")
ss=strtran(ss,"3","叁")
ss=strtran(ss,"4","肆")
ss=strtran(ss,"5","伍")
ss=strtran(ss,"6","陆")
ss=strtran(ss,"7","柒")
ss=strtran(ss,"8","捌")
ss=strtran(ss,"9","玖")


i=len(ss)/2
mark0=0
for j=1 to i
  dd=substr(ss,i*2-j*2+1,2)
  if dd !="零"
    dx(j)=dd
    mark0=1   
  else
    if mark0 !=0
       dx(j)=dd
       dw(j)=""
       mark0=0
    else
      dw(j)=""
      mark0=0
    endif     
  endif
endfor

dw(3)="元"
dw(7)="万"
dw(11)="亿"

if dx(3)=="零"
   dx(3)=""
endif

if dx(7)=="零"
   dx(7)=""
endif
if dx(11)=="零"
   dx(11)=""
endif

cc=""
for j=1 to i
  cc=dx(j)+dw(j)+cc
endfor
if right(cc,2)!="分"
   cc=cc+"整"
endif

return(cc)
ENDFUNC
2005-9-23 23:14#1
查看资料  Blog  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题  


 


所有时间为 GMT+8, 现在时间是 2008-12-2 07:40 Powered by Discuz! 4.1.0 清除 Cookies - XiaoHui.Net 笑汇程序员论坛 - Archiver