⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 num2txt.prg

📁 2仍然
💻 PRG
字号:
para df
dfdx1=num2txt(df)

FUNC num2txt
para lnDollar
priv x1,x2,x3,x4,c1,c2,c3,zf
zf=""
do case
case lnDollar>999999999999.99
    retu "金额太大,不能计算"
case lnDollar=0
    retu "零圆整"
case lnDollar<0
    lnDollar=abs(lnDollar)
    zf="负"
endcase

C1='壹贰叁肆伍陆柒捌玖'
C2='仟佰拾 '
C3='角分'
lcDollar = ALLTRIM(TRAN(lnDollar,"999999999999.99"))
lcDollar=repl('0',15-len(lcDollar))+lcDollar
x1=get_money(subst(lcDollar,1,4)) && 得到亿位数
x2=get_money(subst(lcDollar,5,4)) && 得到万位数
x3=get_money(subst(lcDollar,9,4)) && 得到圆位数
x4=get_cents(subst(lcDollar,14,2)) && 得到分位数
lcText=iif(empty(x1),"",x1+"亿")+;
       iif(empty(x2),"",x2+"万")+;
       iif(empty(x3),"",x3)+"圆"+;
       x4+;
       iif(right(x4,2)='分',"","整")
if left(lcText,2)="零"
    lcText=subst(lcText,3,len(lcText)-2)
endif
if left(lcText,4)="壹拾"
    lcText=right(lcText,len(lcText)-2)
endif 
    retu zf+lcText

FUNC get_money
LPARAMETER lcNumber
priv lcTemp,lcNum,lcString
lcNum=""
lcTemp=""
for n=1 to 4
    lcNum=subst(lcNumber,n,1)
  if lcNum="0"
    lcString="零"
  else
    lcString=subst(c1,val(lcNum)*2-1,2)+subst(c2,n*2-1,2)
  endif
  if !(right(lcTemp,2)="零" and lcString="零") 
    lcTemp=lcTemp+lcString
  endif
endfor
   lcTemp=iif(lcTemp=="零","",allt(lcTemp))
if right(lcTemp,2)="零"
   lcTemp=left(lcTemp,len(lcTemp)-2)
endif
   retu allt(lcTemp)

FUNC get_cents
LPARAMETER lcNumber
priv lcTemp,lcNum,lcString
lcNum=""
lcTemp=""
for n=1 to 2
   lcNum=subst(lcNumber,n,1)
  if lcNum="0"
    lcString=""
  else
    lcString=subst(c1,val(lcNum)*2-1,2)+subst(c3,n*2-1,2)
  endif
   lcTemp=lcTemp+lcString 
endfor
   retu allt(lcTemp)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -