学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

!!!!!!!急救:怎样把金额转换成中文大写

!!!!!!!急救:怎样把金额转换成中文大写

各位大哥大姐帮帮忙!问
如果要求将一组金额以中文大写形式输出,要怎么做?就是平常写发票的那种。。。(例如:26734.86显示输出 贰万陆千柒百叁拾肆元捌角陆分)

TOP

这个问题,简单搜索即可得到答案。据说最省10句。其实可以更短。
感言:学以致用。 博客:http://www.bc-cn.net/blog/user14/65009/index.shtml email:Tiger5392@tom.com

TOP

最近问这个问题的人挺多的,而且都是刚注册的。
看看“简单的编程题,请大家帮帮忙,急啊!!!!”这个帖子,也是这个问题。
同学们啊!!!!

[ 本帖最后由 啸凡 于 2008-5-8 22:31 编辑 ]
学无止境 http://bbs.zc268.com

TOP

找到的

Function  StoB
parameters 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

TOP

重发

Function  StoB             
parameters 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

TOP

发新话题