Qi_jianzhou的资料室

------努力、努力、再努力 去攀登人生颠峰 !------

数字转换为大小

把金额转为大小的代码

 

 {  该代码摘自大富翁:  吕雪松的
   有改动 }
  function ToDaxie(Money : double) : string;
  var
    XiaoXie,DaXie : String;
    DaXie1:array [0..9] of string;
    Buf,TmpBuf : string;
    I : integer;
    P : integer;
    MM : string;
  begin
    XiaoXie := '0123456789';
    DaXie := '零壹贰叁肆伍陆柒捌玖';
    DaXie1[0] := '零';
    DaXie1[1] := '壹';
    DaXie1[2] := '贰';
    DaXie1[3] := '叁';
    DaXie1[4] := '肆';
    DaXie1[5] := '伍';
    DaXie1[6] := '陆';
    DaXie1[7] := '柒';
    DaXie1[8] := '捌';
    DaXie1[9] := '玖';
    MM := '分角拾佰仟万拾佰仟亿拾佰仟万';
    Buf := FloatToStr(Money);

    TmpBuf := '圆';
    P := Pos('.',Buf);
    if P = 0 then P := Length(Buf) + 1;
    for I := P + 1 to Length(Buf) do
    begin

            if Buf[i] <> '0' then
              TmpBuf := TmpBuf + Buf[i] + Copy(MM, 5 - 2*(I - P),2);
            //
    end;
    //  showmessage(tmpBuf);
    for I := 1 to P - 1 do begin
            if Buf[P - I] <> '0' then begin
                    if I <> 1 then TmpBuf := Copy(MM,2*I + 1,2) + TmpBuf;
                    TmpBuf := Buf[P - I] + TmpBuf;
            end;
    end;
    Buf := TmpBuf;
  //showmessage(Buf);
    for I := 1 to Length(Buf)+2 do begin
            if Buf[I] <> '0' then begin
           
                    P := Pos(Buf[I],XiaoXie);
                   // if P > 0 then Buf := StringReplace(Buf,Buf[I],Copy(DaXie,2*P-1,2),[rfReplaceAll]);
                   if P > 0 then Buf := StringReplace(Buf,Buf[I],DaXie1[strtoint(buf[i])],[rfReplaceAll]);
            end;
    end; 
    result := Buf;
  end;
 

阅读更多
文章标签: string integer function
个人分类: Delphi
想对作者说点什么? 我来说一句

数字转换为拼音的方法

2009年07月21日 4KB 下载

数字转换为中文大写代码

2010年04月24日 2KB 下载

中文数字转换为阿拉伯数字

2017年08月11日 4KB 下载

数字转换数字转换数字转换

2009年04月19日 12KB 下载

VB数字转英文表示

2013年03月13日 6KB 下载

数字转换为大写

2013年11月21日 4KB 下载

数字转繁体字

2013年11月19日 10KB 下载

没有更多推荐了,返回首页

不良信息举报

数字转换为大小

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭