求将阿拉伯数字转为中文大写的算法。不要金额的
比如
1-> 一
2 ->二
11-> 十一
。。

解决方案 »

  1.   

    http://blog.zol.com.cn/464/article_463640.html
      

  2.   

    function SmallToBigStr(Small:DouBle):string;   // 小写数字 TO 大写汉字
    var SmallMonth,BigMonth:String;
        wei1,QianWei1:String;
        wei,QianWei,dianweizhi,qian:integer;
        T:boolean;
    begin
      T:=False;
      if Small<0 then
      begin
        T:=True;
        Small:=Small*-1;
      end;
      Qianwei:=-2;
      SmallMonth:=FormatFloat('0.00',small);
      dianweizhi:=pos('.',Smallmonth);
      for qian:=Length(Smallmonth) downto 1 do
      begin
        if qian<>dianweizhi then
        begin
          case StrToInt(Copy(Smallmonth,Qian,1)) of
            1:wei1:='壹';
            2:wei1:='贰';
            3:wei1:='参';
            4:wei1:='肆';
            5:wei1:='伍';
            6:wei1:='陆';
            7:wei1:='柒';
            8:wei1:='捌';
            9:wei1:='玖';
            0:wei1:='零';
          end;
          case Qianwei of
            -3:qianwei1:='厘';
            -2:qianwei1:='分';
            -1:qianwei1:='角';
             0:qianwei1:='元';
             1:qianwei1:='拾';
             2:qianwei1:='佰';
             3:qianwei1:='千';
             4:qianwei1:='万';
             5:qianwei1:='拾';
             6:qianwei1:='佰';
             7:qianwei1:='千';
             8:qianwei1:='亿';
             9:qianwei1:='十';
            10:qianwei1:='佰';
            11:qianwei1:='千';
          end;
          inc(Qianwei);
          BigMonth:=wei1+qianwei1+bigMonth;
        end;
      end;
      if T then Result := '大写:人民币(负)'+BigMonth
           else Result := '大写:人民币'+BigMonth;
    end;
      

  3.   

    SmallToBigStr(123435.12):
    输出:大写:人民币壹拾万叁仟肆佰叁拾伍元壹角贰分
    SmallToBigStr(-123435.12):
    输出:大写:人民币(负)壹拾万叁仟肆佰叁拾伍元壹角贰分