小弟现在需要写一个金额大小写转换的程序.希望有做过这方面的程序的高手贴出代码.谢谢

解决方案 »

  1.   

    网上有n多,自已搜一下,给你一个参考
    http://www.ddvip.net/program/delphi/index6/190.htm
      

  2.   

    Function NumberToRMB(Value :Real): String;  //金额转换成人民币大写字符串
    Const
      DwList: Array[1..14] OF String
          =('分','角','元','拾','佰','千','万','拾','佰','仟','亿','拾','佰','千');
      NumList: Array[0..9] OF String = ('零','壹','贰','叁','肆','伍','陆','染','捌','玖');
    Var
      I, Index, K: Integer;
      Num, RMB: String;
      isZero, isDw: Boolean;
    Begin
      IF Value=0 Then Begin
        Result:= '零元整';
        Exit;
      End;
      Num:= FormatFloat('', ABS(Round(Value*100)));
      RMB:= '';
      Index:= 0;
      isZero:= False;
      isDW:= False;
      For I:=Length(Num) DownTo 1 Do Begin
        Inc(Index);
        IF (Index=3)OR(Index=7)OR(Index=11) Then Begin
          IF Num[I+1]='0' Then Insert(NumList[0], RMB, 1);
          Insert(DwList[Index], RMB, 1);
          isDW:= True;
          isZero:= False;
        End;
        K:= StrToInt(Num[I]);
        IF K<>0 Then Begin
          IF isZero And (not isDW) Then Insert(NumList[0], RMB, 1);
          IF DwList[Index]=Copy(RMB, 1, 2) Then Insert(NumList[K], RMB, 1)
          Else Insert(NumList[K]+DwList[Index], RMB, 1);
          isDW:= False;
          isZero:= False;
        End
        Else isZero:= True;
      End;
      IF Copy(RMB, Length(RMB)-1, 2)<>NumList[0] Then Result:= RMB + '整'
      Else Result:= Copy(RMB, 1, Length(RMB)-2) + '整';
      IF Value<0 Then Insert('负', Result, 1);
    End;