Como fazer este resultado: 0,069237692 ficar 69,23 ??

23/07/2008

1

Ola Amigos do DevMedia.
Boa Noite,

Mais uma vez recorro a voces, e que apos nuitas tentativas nao consegui o resultado necessario:

eu tenho este coódigo:

Saldo:= Saldo + dm.TbContratosValorParcela.asfloat ;
Res:= Saldo/dm.TbContratosTotContrato.Value;
DbePerc.Text:= Floattostr(res);

o resultado obtido, é 0,069237692, o que nao me satizfaz...

Preciso mandar para o Dbedit, e para a Tabela 69,23

meu BD é o Access.

(que saudades tenho do Velho Clipper!, Nestes casos era 99¬ menos complicado . nao tinha nada de Float etc....).

Atenciosamente.
Jotas


Responder

Posts

23/07/2008

Paullsoftware

olá amigo, eu tb pensei em:´Nossa como é complicado programar no Delphi´, mais é bem assim...


olha, acho que você pode resolver o seu problema formatando o valor do resultado assim:

Saldo:= Saldo + dm.TbContratosValorParcela.asfloat ; 
Res:= Saldo/dm.TbContratosTotContrato.Value; 
//Detalhe, não precisa passar o valor para DBEdit, pode-se passar para o Field ligado a ele usando a propriedade OnGetText do campo de sua tabela selecionando o mesmo no "Fields Editor"
DbePerc.Text:= Floattostr(res); 


para resolver o seu problema faça assim:
Var
Res:String;
Res:= FormatFloat(´R$ #,,0.00´,Saldo/dm.TbContratosTotContrato.Value);
Não sei qual o tipo da sua variável RES, mais no exemplo eu usei ela como sendo do tipo [b:7e99053a3f]String[/b:7e99053a3f] blz? espero ter ajudado :wink:


Responder

24/07/2008

Carlosrm

jotas,

lendo rápido o título do seu post, parece que a solução mais simples é multiplicar por 1000... Mas como vc citou um componente chamado dbePerc (suponho que ´perc´ vem de ´percentagem´, a multiplicação deveria ser por 100... Neste caso, o valor na dbedit e na tabela seria 6,92. Ou o valor de res deveria ser 0,69237692... Estou pensando exclusivamente em cálculos de percentagem, percentuais e afins... Se for outra coisa, faz de conta que eu não digitei nada... :lol:
carlosrm


Responder

24/07/2008

Aroldo Zanela

Colega,

Quando for utilizar valores monetários, utilize o tipo currency. Isso se aplica à declaração de variáveis e métodos (.AsCurrency ao invés de .AsFloat). No caso acima, você deve utilizar a regra de três simples como faria em CA-Clipper.

Exemplo:
var
  Saldo, Res: Currency;
  ValorParcela, TotalContrato: Currency;
begin
  TotalContrato := 14000.00;
  Saldo         := 3000.00;
  ValorParcela  := 1400.00;
  Saldo         := Saldo + ValorParcela;
  Res           := (Saldo*100)/TotalContrato;

  Application.MessageBox(PChar(´O percentual liquidado é ´+FormatFloat(´#0.00´, Res)), ´Informativo´, MB_OK +
    MB_ICONINFORMATION);
end;



Responder

24/07/2008

Jotas

Amigos !!

Resolvido o Problema.. Multipliquei por 100, e ai o resultado ficou legal
como eu precisava.
Obrigado pela Atençao e Eficiencia de todos....

o Total do Contrato era 65.000,00 e a parcela era 45.000,00
45.000/65000 = 0,69230769
que, multiplicado por 100 vou ter 69,23, Blz.

Jotas


Responder

24/07/2008

Martins

Vc está procurando um percentual não é isso? Calculando assim vc teria o resultado desejado?

  Saldo:= Saldo + dm.TbContratosValorParcela.asfloat ; 
  Res:= (Saldo/dm.TbContratosTotContrato.Value) * 100; 
  DbePerc.Text:= Floattostr(res); 


Boa sorte e bons códigos.


Responder

24/07/2008

Luiz Henrique

Bom dia Jonas,

Aproveitando as respostas, com vc ta iniciando...pensen em re-uso de codigo, e se for o caso, faz um metodo proprio(funcao) ai para te retornar o que deseja... para nao ficar escrevendo a mesma coisa em varias partes do programa...

Blz, t+


Responder

24/07/2008

Martins

Desculpe Jotas, não observei q vc já hávia solucionado o seu problema.

Boa sorte.


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira