回 帖 发 新 帖 刷新版面

主题:数字大小写

人民币小写转成大写可用下列程序:
PUBLIC cdxx
ctitle=xx
cdxx=getpy(ctitle)
FUNCTION getpy
LPARAMETERS mmje
PRIVATE dx,aa,i,lcReturnValue
dx=IIF(mmje<0,'负','')
aa=ROUND(ABS(mmje)*100,0)
FOR i=LEN(ALLTRIM(STR(aa,15)))-1 to 0 STEP -1
    dx=dx+SUBS('零壹贰叁肆伍陆柒捌玖',INT(ROUND(aa/10^i,10))*2+1,2)+SUBS('分角元拾佰仟万拾佰仟亿拾佰仟万',i*2+1,2)
    aa=MOD(aa,10^i)
ENDFOR
dx=STRTRAN(STRTRAN(STRTRAN(STRTRAN(STRTRAN(dx,'零仟','零'),'零佰','零'),'零拾','零'),'零角','零'),'零分','整')
dx=STRTRAN(STRTRAN(STRTRAN(STRTRAN(STRTRAN(dx,'零零','零'),'零零','零'),'零亿','亿'),'零万','万'),'零元','元')
lcReturnValue = IIF(dx='整','零元整',STRTRAN(STRTRAN(dx,'亿万','亿'),'零整','整'))
RETURN (lcReturnValue)
ENDPROC
 请朋友给改一改,使其变为数字大小写呢?如256写贰佰伍拾陆,且最后不带整。

回复列表 (共4个回复)

沙发

你把倒数第二句改为
RETURN STRTRAN(lcReturnValue,'整','')
试试

板凳

把下面的代码写道 PRG 文件里,例如 SZTODX.PRG

PARAMETERS nSZ
cSZ = ALLTRIM(STR(nSZ,18))
nLen = LEN(cSZ)
J = 1
FOR I = nLen TO 2 STEP -1
  cSZ=STUFF(cSZ,I,0,SUBSTR("拾佰仟万拾佰仟亿拾佰仟万",J,2))
  J=J+2
NEXT 
cSZ=STRTRAN(STRTRAN(STRTRAN(cSZ,'0仟','0'),'0佰','0'),'0拾','0')
cSZ=STRTRAN(STRTRAN(STRTRAN(cSZ,'00','0'),'0亿','亿'),'0万','万')
cSZ=CHRTRANC(STRCONV(cSZ,1),STRCONV("0123456789",1),"零壹贰叁肆伍陆柒捌玖")
RETURN STRTRAN(STRTRAN(STRTRAN(cSZ,'零零','零'),'零亿','亿'),'零万','万')
************
?SZTODX(256)

3 楼

LPARAMETERS mmje
PRIVATE dx,aa,i,lcReturnValue
dx=IIF(mmje<0,'负','')
aa=ROUND(ABS(mmje)*100,0)
FOR i=LEN(ALLTRIM(STR(aa,15)))-1 to 0 STEP -1
    dx=dx+SUBS('零壹贰叁肆伍陆柒捌玖',INT(ROUND(aa/10^i,10))*2+1,2)+SUBS('分角元拾佰仟万拾佰仟亿拾佰仟万',i*2+1,2)
    aa=MOD(aa,10^i)
ENDFOR
dx=STRTRAN(STRTRAN(STRTRAN(STRTRAN(STRTRAN(dx,'零仟','零'),'零佰','零'),'零拾','零'),'零角','零'),'零分','整')
dx=STRTRAN(STRTRAN(STRTRAN(STRTRAN(STRTRAN(dx,'零零','零'),'零零','零'),'零亿','亿'),'零万','万'),'零元','元')
lcReturnValue = IIF(dx='整','零元整',STRTRAN(STRTRAN(dx,'亿万','亿'),'零整','整'))
lcReturnValue = ALLTRIM(STRTRAN(STRTRAN(STRTRAN(STRTRAN(lcReturnValue,'元','点'),'整',''),'角',''),'分',''))
lcReturnValue = IIF(SUBSTR(lcReturnValue,LEN(lcReturnValue)-1,2)="点",SUBSTR(lcReturnValue,1,LEN(lcReturnValue)-1),lcReturnValue)
RETURN lcReturnValue
ENDPROC

4 楼

?yzh(234)                  贰佰叁拾肆
?yzh(234.65)               贰佰叁拾肆点陆伍

我来回复

您尚未登录,请登录后再回复。点此登录或注册