!!!!!!!急救:怎样把金额转换成中文大写
各位大哥大姐帮帮忙!问如果要求将一组金额以中文大写形式输出,要怎么做?就是平常写发票的那种。。。(例如:26734.86显示输出 贰万陆千柒百叁拾肆元捌角陆分) 这个问题,简单搜索即可得到答案。据说最省10句。其实可以更短。 最近问这个问题的人挺多的,而且都是刚注册的。
看看“简单的编程题,请大家帮帮忙,急啊!!!!”这个帖子,也是这个问题。
同学们啊!!!!
[[it] 本帖最后由 啸凡 于 2008-5-8 22:31 编辑 [/it]]
找到的
Function StoBparameters Text1
JE="????·??????é????°???"
cDW="????°??°?ò??°??°????°??°?ò??°??°????·?"
newString=alltrim(str(text1*100,19)) &&??????????·???×??ó?¤????19??????????
newStringLong=Len(newString) &&????×?·??¤??
newDW=right(cDW,newStringLong*2) &&??????×?·????ù??????????????
Num0=0 &&????????????
DXJE=""
for m=1 to newStringLong
xZF=substr(NewString,m,1) &&????????×?·?
dZF=Substr(JE,2*val(xZF)+1,2) &&?????ó??×?·?
DW=substr(NewDW,2*M-1,2) &&????????
if dZF="??"
dZF=""
do case
case DW $"????" &&?????????ò??
Case DW="?ò"
if right(DW,2)="??"
dZF=""
endif
otherwise
DW=""
endcase
Num0=Num0+1
else
if Num0>0
dZF="??"+dZF
endif
Num0=0
endif
Dxje=Dxje+dZF+DW
endfor
Dxje=Dxje+iif(right(NewString,1)="0","??","")
Return Dxje
重发
Function StoBparameters Text1
JE="零壹贰叁肆伍陆柒捌玖"
cDW="亿仟佰拾万仟佰拾亿仟佰拾万仟佰拾元角分"
newString=alltrim(str(text1*100,19)) &&去掉小数部分,最大长度为19位既亿亿位
newStringLong=Len(newString) &&取得字符长度
newDW=right(cDW,newStringLong*2) &&取出此字符串所有能用到的单位
Num0=0 &&记录零的个数
DXJE=""
for m=1 to newStringLong
xZF=substr(NewString,m,1) &&取出小写字符
dZF=Substr(JE,2*val(xZF)+1,2) &&取出大写字符
DW=substr(NewDW,2*M-1,2) &&取出单位
if dZF="零"
dZF=""
do case
case DW $"亿元" &&如果为亿或元
Case DW="万"
if right(DW,2)="亿"
dZF=""
endif
otherwise
DW=""
endcase
Num0=Num0+1
else
if Num0>0
dZF="零"+dZF
endif
Num0=0
endif
Dxje=Dxje+dZF+DW
endfor
Dxje=Dxje+iif(right(NewString,1)="0","整","")
Return Dxje
页:
[1]
