Valor por extenso

27/02/2003

0

Oi pessoal

Eu uso um componente que retorna o ´valor por extenso´ de um valor. Só que esse componente era p/ Delphi 5 e agora que mudei p/ Delphi 7 ele não funciona mais :( . Alguém tem um componente desses por ai???


Obrigada!!!

[]´s


Renata

Renata

Responder

Posts

27/02/2003

Marcelo

olha, um componente eu nao tenho, mas posso te dizer onde vc acha uma funcao que faca isso pra vc,,, no proprio clubedelphi tem um programa ou apostila, nao me lembro muito bem, mas tem algo, que vai te ensinar a fazer essa rotina!

Um abraco,
Marcelo.


Responder

27/02/2003

Aroldo Zanela

Function Extenso( const Valor:LongInt): String;
type
     asMilhar = array[0..4,1..2] of string[9] ;
const
     aMil : asMilhar = ( ( ´´        , ´´          )  ,
                         ( ´ Mil´    , ´ Mil´      )  ,
                         ( ´ Milhão´ , ´ Milhões´  )  ,
                         ( ´ Bilhão´ , ´ Bilhões´  )  ,
                         ( ´ Trilhão´, ´ Trilhões´ ) );
var
     Numero  : LongInt ;
     nAux    : LongInt ;
     sNumero : string  ;
     m       : integer ;
Begin
     sNumero:=´´     ;
     m:=0            ;
     Numero := Valor ;
     While Numero >= 1 do Begin
        nAux := Numero mod 1000;
        if nAux > 0 then
           if nAux > 1 then
              sNumero := ( Centena( nAux ) + aMil[m][2] ) + sNumero
           else
              sNumero := ( Centena( nAux ) + aMil[m][1] ) + sNumero;
           Numero := Numero - nAux;
           Numero := Numero div 1000;
           if ( Numero >= 1 ) and (nAux > 0) and (Length(sNumero)>0 ) then
              sNumero := ´, ´ + sNumero;
           Inc(m);
     end;
     result := sNumero;
end;

{Retorna o extenso de um número monetário}
Function DinExtenso( const Valor:extended ): String;
var
     Principal  : LongInt ;
     Centavos   : integer ;
     ValExtenso : string  ;
Begin
     Principal  := trunc( Valor )                    ;
     Centavos   := round( (Valor - Principal)*100 )  ;
     ValExtenso := ´´                                ;
     if Principal > 0 then Begin
        ValExtenso := Extenso(Principal);
        if Principal = 1 then
           ValExtenso := ValExtenso + ´ Real´
        else
           ValExtenso := ValExtenso + ´ Reais´;
        if Centavos > 0 then
           ValExtenso := ValExtenso + ´ e ´;
     end;
     if Centavos > 0 then Begin
        ValExtenso := ValExtenso + Centena(Centavos);
        if Centavos = 1 then
           ValExtenso := ValExtenso + ´ Centavo´
        else
           ValExtenso := ValExtenso + ´ Centavos´;
     end;
     result := ValExtenso                            ;
end;




Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar