找传奇、传世资源到传世资源站!

delphi 金额大小写转换 源码

8.5玩家评分(1人评分)
下载后可评
介绍 评论 失效链接反馈

【例子介绍】

【相关图片】

delphi 金额大小写转换 源码 Delphi图形界面编程-第1张

【源码结构】

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    Function ConvertMoney(Num: Real): String;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
   uses math;
{$R *.dfm}

{ TForm1 }

function TForm1.ConvertMoney(Num: Real): String;
var
  intstr,decstr,s: String;
  intlen,declen,i: word;
begin
  Intstr:= intToStr(Trunc(Num));
  decstr := FloatToStr(RoundTo(Frac(num),-2));//对小数进行四舍五入
  decstr := copy(decstr,3,Length(decstr)-1);
  declen := Length(decstr);
  intlen := Length(Intstr);
  For i :=  1 to Intlen do
  begin
    Case StrToInt(Intstr[i]) of
      0: begin
           if (copy(s,Length(s)-1,2)<>'零')  then
             s := s '零';
         end;
      1: s := s '壹';
      2: s := s '贰';
      3: s := s '叁';
      4: s := s '肆';
      5: s := s '伍';
      6: s := s '陆';
      7: s := s '柒';
      8: s := s '捌';
      9: s := s '玖';
    end;
     case intlen-i 1 of
       13: begin
             if (StrToInt(Intstr[i])<>0)then
               s := s '万';
           end;
       12: begin
             if (StrToInt(Intstr[i])<>0) then
               s := s '千';
           end;
       11: begin
             if (StrToInt(Intstr[i])<>0) then
               s := s '佰';
           end;
       10: begin
             if (StrToInt(Intstr[i])<>0) then
             begin
               //if (copy(s,Length(s)-1,2) ='壹')then
                // s := copy(s,0,Length(s)-2);
               s := s '十';
             end;
           end;
       9: begin
              if (StrToInt(Intstr[i])<>0) then
                s := s '亿'
              else
              begin
                if (copy(s,Length(s)-1,2) ='零')then
                  s := copy(s,0,Length(s)-2);
                  s := s '亿';
              end;
           end;
       8: begin
             if (StrToInt(Intstr[i])<>0) then
               s := s '千';
           end;
       7: begin
             if (StrToInt(Intstr[i])<>0)then
               s := s '佰';
           end;
       6: begin
             if (StrToInt(Intstr[i])<>0) then
             begin
               if (copy(s,Length(s)-1,2) ='壹')then
                 s := copy(s,0,Length(s)-2);
               s := s '十';
             end;
           end;
       5: begin
             if (StrToInt(Intstr[i])<>0) then
              s := s '万'
              else
              begin
                  s := copy(s,0,Length(s)-2);
                if (copy(s,Length(s)-1,2) <>'亿')then
                  s := s '万'
                else
                  s := s '零';
              end;
           end;
       4: begin
             if (StrToInt(Intstr[i])<>0) then
               s := s '千';
           end;
       3: begin
             if (StrToInt(Intstr[i])<>0) then
               s := s '佰';
           end;
       2: begin
             if (StrToInt(Intstr[i])<>0) then
               s := s '十';
           end;
       1: begin
             if (copy(s,Length(s)-1,2) ='零')then
               s := copy(s,0,Length(s)-2);
               s := s '元';
           end;
     end;
  end;
  For i := 1 to declen do
  begin
    Case StrToInt(decstr[i]) of
      0: begin
           if (copy(s,Length(s)-1,2)<>'零')  then
             s := s '零';
         end;
      1: s := s '壹';
      2: s := s '贰';
      3: s := s '叁';
      4: s := s '肆';
      5: s := s '伍';
      6: s := s '陆';
      7: s := s '柒';
      8: s := s '捌';
      9: s := s '玖';
    end;
    case i of
      1: begin
            if (StrToInt(decstr[i])<>0)then
              s := s '角';
          end;
      2: begin
            if (StrToInt(decstr[i])<>0) then
              s := s '分';
          end;
    end;
  end;
  Result := s;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit2.Text:= Convertmoney(StrToFloat(Edit1.Text));
end;

end.

评论

发表评论必须先登陆, 您可以 登陆 或者 注册新账号 !


在线咨询: 问题反馈
客服QQ:174666394

有问题请留言,看到后及时答复