我在一个单据里面可以输入单据的总的消费金额,比如128.52(元)我怎么打印输出时候跟据输入消费的金额,把输入的金额转成大写输出如:壹 [百] 贰 [拾] 捌 [元] 伍 [角] 贰 [分]
怎样写呢?请各位高手多给意见不胜感谢谢、、、、

解决方案 »

  1.   

    到Delphi盒子下载个转成大写的源代码。www.2ccc.com
      

  2.   

    function SmallTOBig(small:real):string;
      var SmallMonth,BigMonth:string;
          wei1,LastWei1,qianwei1:string[2];
          wei,qianwei,dianweizhi,qian:integer;
      begin
       LastWei1:='零';
    {------- 修改参数令值更精确 -------}
    {小数点后的位数,需要的话也可以改动该值}
        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
    {判断大写位置,可以继续增大到real类型的最大值,可是谁有那么多钱}
                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;  //case
                inc(qianwei);
                if qianwei mod 4 =1 then
                  begin
                    BigMonth :=qianwei1+BigMonth;{组合成大写金额}
                    LastWei1:='零';
                  end;
                if Wei1<>'零' then
                  begin
                    if  qianwei mod 4 = 1 then
                      BigMonth :=wei1+BigMonth{组合成大写金额}
                    else
                      BigMonth :=wei1+qianwei1+BigMonth;{组合成大写金额}
                  end
                else
                  if LastWei1<>'零' then
                    BigMonth :=wei1+BigMonth;{组合成大写金额}
                LastWei1:=Wei1;
              end;  //if qian<>dianweizhi then      end;   //for qian:=length(Smallmonth) downto 1 do    SmallTOBig:=BigMonth;  end;  //Function
      

  3.   

    谢谢
    不过我想要类似于这种格式的:X [万] X [千] 壹 [百] 贰 [拾] 捌 [元] 伍 [角] 贰 [分]
    高位没有的自动加 "X"
    谢指教,谢谢谢....