中文金额转换
用存储过程写

解决方案 »

  1.   

    :)
    function GetCurrency(number: PChar): string;
    var
      tmpStr: string;
    begin
      SetLength(tmpStr, 255);
      GetCurrencyFormat(LOCALE_SYSTEM_DEFAULT, 0, number, nil, PChar(tmpStr), Length(tmpStr));
      Result := tmpStr;
    end;// Beispiel: Example:procedure TForm1.Button1Click(Sender: TObject);
    begin
      Application.MessageBox(PChar(GetCurrency(PChar(Edit1.Text))), '', MB_OK);
      

  2.   

    --存储过程:
    ------------------------------------***
    if object_id('money_stob')is not null
    drop procedure money_stob
    go
      
    CREATE procedure money_stob(@Money numeric(15,2))  
     AS   
    BEGIN 
    declare @x varchar(200) 
    declare @type varchar(200) 
    declare @reslut varchar(200)
    declare @count int
    set @x=@Money
    set @count=1
    set @reslut=''
    while ( @count<=len(@x))
    begin
      select @type=case substring(@x,len(@x)-@count+1,1)
    WHEN  '.' THEN  '元'
    WHEN  '0' THEN  '零'
    WHEN  '1' THEN  '壹'
    WHEN  '2' THEN  '贰'
    WHEN  '3' THEN  '叁'
    WHEN  '4' THEN  '肆'
    WHEN  '5' THEN  '伍'
    WHEN  '6' THEN  '陆'
    WHEN  '7' THEN  '柒'
    WHEN  '8' THEN  '捌'
    WHEN  '9' THEN  '玖'
    end
      select @type=@type+case @count
    WHEN  1  THEN  '分'
    WHEN  2  THEN  '角'
    WHEN  3  THEN  ''
    WHEN  4  THEN  ''
    WHEN  5  THEN  '拾'
    WHEN  6  THEN  '佰'
    WHEN  7  THEN  '仟'
    WHEN  8  THEN  '万'
    WHEN  9  THEN  '拾'
    WHEN  10  THEN  '佰'
    WHEN  11  THEN  '仟'
    WHEN  12  THEN  '亿'
    WHEN  13  THEN  '拾'
    WHEN  14  THEN  '佰'
    WHEN  15  THEN  '仟'
    WHEN  16  THEN  '万'
    ELSE ''
    end
    set @reslut=@type+@reslut
    set @count=@count+1
    end
    begin
    set @reslut=replace(@reslut,'零拾','零') 
    set @reslut=replace(@reslut,'零佰','零') 
    set @reslut=replace(@reslut,'零仟','零') 
    set @reslut=replace(@reslut,'零零零','零')
    set @reslut=replace(@reslut,'零零','零')
    set @reslut=replace(@reslut,'零角零分','整')
    set @reslut=replace(@reslut,'零分','整')
    set @reslut=replace(@reslut,'零角','零')
    set @reslut=replace(@reslut,'零亿零万零元','亿元')
    set @reslut=replace(@reslut,'亿零万零元','亿元')
    set @reslut=replace(@reslut,'零亿零万','亿')
    set @reslut=replace(@reslut,'零万零元','万元')
    set @reslut=replace(@reslut,'万零元','万元')
    set @reslut=replace(@reslut,'零亿','亿')
    set @reslut=replace(@reslut,'零万','万')
    set @reslut=replace(@reslut,'零元','元')
    set @reslut=replace(@reslut,'零零','零')
    end
    if ('元'=substring(@reslut,1,1))
    begin
      set @reslut=substring(@reslut,2,(len(@reslut)-1))
    end
      if ('零'=substring(@reslut,1,1))
    begin
      set @reslut=substring(@reslut,2,(len(@reslut)-1))
    end
      if('角'=substring(@reslut,1,1))
    begin
      set @reslut=substring(@reslut,2,(len(@reslut)-1))
    end
    if ('分'=substring(@reslut,1,1))
    begin
         set @reslut=substring(@reslut,2,(len(@reslut)-1))
    end
      if ('整'=substring(@reslut,1,1))
    begin
      set @reslut='零元整'
    end
      print @reslut
    END
      

  3.   

    o  
    不意思了
    我看错了:)
     wooting(不醉)写的很全了:)