• FastReport人民币大写转换


    function MoneyToCharacter(Money:real):string; //数字转换为中文大写
    var
        temp:string;
        resu:string;
        i,j:integer;
        len:integer;
        Num:array[0..9] of string;
        A:array[0..13] of string;
    begin
         Num[0]:='零';
         num[1]:='壹';
         Num[2]:='贰';
         num[3]:='叁';
         Num[4]:='肆';
         num[5]:='伍';
         Num[6]:='陆';
         num[7]:='柒';
         Num[8]:='捌';
         num[9]:='玖';
         a[0]:='分';
         a[1]:='角';
         a[2]:='元';
         a[3]:='拾';
         a[4]:='佰';
         a[5]:='仟';
         a[6]:='万';
         a[7]:='拾';
         a[8]:='佰';
         a[9]:='仟';
         a[10]:='亿';
         a[11]:='拾';
         a[12]:='佰';
         a[13]:='仟';

         temp:=trim(inttostr(round(money*100)));
         len:=length(temp);
         resu:='';
         if (len>13) or (len=0) then
           begin
             exit;
           end;
         for i:=1 to len do
         begin
             j:=strtoint(copy(temp,i,1));
             resu:=resu+num[j]+a[len-i];
         end;
         result:=resu;
    end;

    调用方法:

    Memo2.text:=MoneyToCharacter(sum(<frxDBDataset1."Amount">));

    或 MoneyToCharacter(3654.63);

    另:

    void   fnFloatToRMB(float   Money)  
      {                  
                        String   sRMBUnit="分角元拾佰仟万拾佰仟亿拾百";  
      String   sRMBNumber="零壹贰叁肆伍陆柒捌玖";  
      String   sMoney,sRMBMoney,sChar,sNumber,sUnit;  
      int iMoneyLength,iPosDecimal;  
      float fAfterDecimal; //小数部分  
      int iBeforeDecimal; //整数部分  
      bool   bIsZeroEnd;  
       
      iBeforeDecimal=Money;  
      fAfterDecimal=fabs(Money-iBeforeDecimal);  
      if(fAfterDecimal   >   0   || Money ==   0)  
      {  
      sRMBMoney="";  
      }  
      else  
      {  
      sRMBMoney="整";  
      }  
       
      sMoney=FormatFloat("0.00",Money);  
      //删除小数点  
      iPosDecimal =sMoney.Pos(".");  
      if(iPosDecimal   >   0)  
      sMoney=sMoney.Delete(iPosDecimal,1);  
      iMoneyLength=sMoney.Length();  
       
      int i=0;  
      bIsZeroEnd=true;  
      while(iMoneyLength>0)  
      {  
      i++;  
      sChar=sMoney.SubString(iMoneyLength,1);  
      if(sChar=="-")  
      {  
      sNumber="负";  
      sUnit="";  
      }  
      else  
      {  
      sNumber=sRMBNumber.SubString(StrToInt(sChar)*2+1,2);  
      sUnit=sRMBUnit.SubString(i*2-1,2);  
      if(sChar=="0")  
      {  
      if(i!=3 &&   i!=7 &&   i!=11) sUnit="";  
      if(bIsZeroEnd ||   i==3 ||   i==7 ||   i==11) sNumber="";  
      if(fabs(Money)<1   && i<=3){sUnit="";sNumber="";}  
      bIsZeroEnd=true;  
      }  
      else   bIsZeroEnd=false;  
      if(sChar=="1")  
      {  
      if((i==sMoney.Length()   || (i==sMoney.Length()-1 &&   Money<0))  
      &&   (i==2|| i==4   || i==8))  
      sNumber="";  
      }  
      }  
      sRMBMoney=sNumber+sUnit+sRMBMoney;  
      iMoneyLength--;  
      }  
      return   sRMBMoney;  
      }

  • 相关阅读:
    PHP中过滤数组中的元素
    cookie中文乱码解决(php/js)
    Ubuntu系统tar克隆
    磁盘IO性能监控(Linux 和 Windows)
    远程桌面由于帐户限制你无法登录问题
    SAP中关于用户IP信息的获取
    选择界面制作按钮
    ALV常用参数详细描述
    销售订单、外向交货单、交货 bapi
    abap 常用表
  • 原文地址:https://www.cnblogs.com/MaxIE/p/1592831.html
Copyright © 2020-2023  润新知