关闭

数字转换为大小

603人阅读 评论(0) 收藏 举报

把金额转为大小的代码

 

 {  该代码摘自大富翁:  吕雪松的
   有改动 }
  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;
 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:254014次
    • 积分:3834
    • 等级:
    • 排名:第8820名
    • 原创:109篇
    • 转载:70篇
    • 译文:0篇
    • 评论:18条
    最新评论
    链接
    上位机