首页  ·  知识 ·  生产制造
大小写金额转换
网友  收集    编辑:德仔   图片来源:网络
//////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////  

  //  

  //将钱数转化为大写(18位,如有特殊要求可修改参数为double,给ls_bit添加单位)  

  //     arg   :   decimal     data  

  //  

  //////////////////////////////////////////////////////////////////////  

  string   ls_bit[18]   =   {'仟','佰','拾','万','仟','佰','拾','亿','仟','佰','拾','万','仟','佰','拾','元','角','分'}  

  string   ls_num[9]   =   {'壹','贰','叁','肆','伍','陆','柒','捌','玖'}  

  string   ls_r   =   '',   ls_je,   ls_c  

  long   i,   k  

   

  ls_je   =   string(   data   *   100,   fill(   '#',   18   -   1   )   +   '0'   )  

  k   =   18   -   len(   ls_je   )   +   1  

  for   i   =   k   to   18  

  ls_c   =   mid(   ls_je,   i   -   k   +   1,   1   )  

  if   ls_c   =   '0'   then  

  if   pos(   ls_bit[i   -   1],   '零'   )   >   0   then ls_bit[i   -   1]   =   '';  

  if   ls_bit[i]   <>   '亿'   and   ls_bit[i]   <>   '万'   and   ls_bit[i]   <>   '元'   then   ls_bit[i]   =   '零'  

  else  

  ls_bit[i]   =   ls_num[long(ls_c)]   +   ls_bit[i]  

  end   if  

  next  

  if   ls_c   =   '0'   then   ls_bit[18]   =   '整'  

  if   ls_bit[9]   =   ''   and   ls_bit[10]   =   ''   and   ls_bit[11]   =   ''   then   ls_bit[12]   =   ''  

  for   i   =   k   to   18  

  ls_r   =   ls_r   +   ls_bit[i]  

  next  

  return   ls_

 

string   SL,JE,M,DXJE  

  integer   N,I,J,W  

  SL="零壹贰叁肆伍陆柒捌玖拾"  

  JE="分角元拾佰仟万拾佰仟亿"  

  M=trim(XXJE)  

  N=pos(M,".")  

  M=replace(M,N,1,"")//去掉小数点用“”代替  

  N=len(M)  

  J=N;   DXJE="   "               //Initialize  

  for   I=1   to   N  

  W=integer(mid(M,I,1))  

  if   W>0   then  

  DXJE=DXJE   +   mid(SL,W   +   1,1)  

  DXJE=DXJE   +   mid(JE,J,1)  

  ElseIf   W=0   then  

  if   mid(JE,J,1)="万"   then  

  DXJE=DXJE   +   mid(JE,J,1)  

  ElseIF   mid(JE,J,1)="元"   then  

  if   Len(M)=3   then  

  DXJE=DXJE+"零"  

  end   if    

  DXJE=DXJE   +   "元"  

  if   integer(mid(M,I   +   1,1))>0   and   Len(M)   >   3   then  

  DXJE=DXJE   +   Mid(SL,W   +   1,1)  

  end   if  

  ELSEIf   integer(mid(M,I   +   1,1))>0   then  

  DXJE=DXJE   +   mid(SL,W   +   1,1)  

  ElseIf   integer(mid(M,I))   =   0   then  

  if   J   >=   7   then   DXJE=DXJE   +   "万"  

  if   J   >=   3   then   DXJE=DXJE   +   "元"  

  DXJE   =DXJE   +   "整"  

  EXIT  

  End   if  

  End   if  

  J=J   -   1  

  Next  

  return   DXJE  

本文作者:网友 来源:网络收集
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的