Fórum Valor por extenso #141893
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
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
Curtir tópico
+ 0
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.
Um abraco,
Marcelo.
Responder
Gostei + 0
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)