pascal金额小写转大写

function TFormMain.SmallTOBig(small:real):string;
var
  S1,B1,w1,qw1:string;
  qw,dwz,q:integer;
begin
  s1 :=formatfloat('0.00',small);     //格式化字符串
  dwz:=pos('.',s1);                  //求小数点位置
  qw :=dwz-2;                         //第一位的位值
  for q:=1 to length(s1) do        //从第一位开始循环到最后一位
  begin
    if q<>dwz then          //是点位值跳过
    begin
      case strtoint(copy(S1,q,1)) of
        1:w1:='壹';   2:w1:='贰';
        3:w1:='叁';   4:w1:='肆';
        5:w1:='伍';   6:w1:='陆';
        7:w1:='柒';   8:w1:='捌';
        9:w1:='玖';   0:w1:='零';
      end;
      case qw of
        -2:qw1:='分';   -1:qw1:='角';   0:qw1:='元';
         1:qw1:='拾';    2:qw1:='佰';   3:qw1:='仟';
         4:qw1:='万';    5:qw1:='拾';   6:qw1:='佰';
         7:qw1:='仟';    8:qw1:='亿';   9:qw1:='拾';
        10:qw1:='佰';   11:qw1:='仟';  12:qw1:='兆';
        13:qw1:='拾';   14:qw1:='佰';  15:qw1:='仟';
      end;
      if w1='零' then           //数值是零的情况
      begin
        if (qw=4)or(qw=8) then  //数位是万位和亿位的情况
        begin
          if ((q+1)<=length(s1)) and ((q+1)<>dwz) then
            if (strtoint(copy(S1,q+1,1))<>0) then
              b1:=b1+qw1+w1
            else
            begin
             if   copy(b1,length(b1)-1,2)<>'亿' then
               b1:=b1+qw1;
            end;
        end;
        if qw=0 then b1:=b1+qw1;  //数位是个位的情况
          if (qw<>0) and (qw<>4) and (qw<>8) then  //数位不是万位,亿位,个位的情况
            if ((q+1)<=length(s1)) and ((q+1)<>dwz) then
              if (strtoint(copy(S1,q+1,1))<>0) then
                B1 :=B1+w1;
      end
      else
      begin
        b1 := b1+w1+qw1;       //减位数
      end;
      dec(qw); //qw自动减1
    end;//end if
  end;//end for

  if (pos('角',B1)<=0) and (pos('分',B1)<=0) then
        B1:=B1+'圆整';


  SmallTOBig:=B1;//返回值
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值