Como fazer este resultado: 0,069237692 ficar 69,23 ??
23/07/2008
0
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
Jotas
Posts
23/07/2008
Paullsoftware
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);
24/07/2008
Carlosrm
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
24/07/2008
Aroldo Zanela
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;
24/07/2008
Jotas
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
24/07/2008
Martins
Saldo:= Saldo + dm.TbContratosValorParcela.asfloat ; Res:= (Saldo/dm.TbContratosTotContrato.Value) * 100; DbePerc.Text:= Floattostr(res);
Boa sorte e bons códigos.
24/07/2008
Luiz Henrique
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+
24/07/2008
Martins
Boa sorte.
Clique aqui para fazer login e interagir na Comunidade :)