Arredondamento no delphi 7
Arredondamento
Tenho um apliocativo para revendedora de Pneus, utilizo o banco de dados firebird 1.5.3, delphi 7 e utilizo os
componentes do dbexpress (tsqldaset,TdatsetProvider,TclientDataset,Tdatasource)
Problema tenho uma grid que o usuario digita o codigo do produto, a quantidade, o valor unitario, e o percentual
de desconto unitario e o programa calcula o valor total de cada item ex.
Quantidade 1
Valor unitario 8.06
¬ de Desconto 10,70
Total = 7.20
Ou seja o resultado final é 7.197 o programa arredonda para 7.20 tudo perfeito
Mas tenho uma trigger que calcula o valor total de todos os itens digitados e grava o valor total na tabela
pedido, este campo e numerico(12,2), entro no ibexpert digito (select vrtotal from pedido where pedido = 100)
o retorno e 7.20 perfeito....
No delphi tenho este mesmo comando para mostrar o valor total dos itens digitados e mostra o valor 7.19 e chamo
uma tela para digitar o financeiro e programa transfere o0 valor de 7.19 com a diferenca de 0.01 centavo...
A pergunta é a seguinte tem alguma propriedade dos componentes que eu utilizo que eu tenho que alterar para
trazer o valor arredondado????? tenho que utilizar alguma função para eu resolver este problema......
Gostaria de receber ajuda dos colegas do portal para me ajudar a resolver este problema....
Grato pela atenção
Plácido Parussulo Netto
Tenho um apliocativo para revendedora de Pneus, utilizo o banco de dados firebird 1.5.3, delphi 7 e utilizo os
componentes do dbexpress (tsqldaset,TdatsetProvider,TclientDataset,Tdatasource)
Problema tenho uma grid que o usuario digita o codigo do produto, a quantidade, o valor unitario, e o percentual
de desconto unitario e o programa calcula o valor total de cada item ex.
Quantidade 1
Valor unitario 8.06
¬ de Desconto 10,70
Total = 7.20
Ou seja o resultado final é 7.197 o programa arredonda para 7.20 tudo perfeito
Mas tenho uma trigger que calcula o valor total de todos os itens digitados e grava o valor total na tabela
pedido, este campo e numerico(12,2), entro no ibexpert digito (select vrtotal from pedido where pedido = 100)
o retorno e 7.20 perfeito....
No delphi tenho este mesmo comando para mostrar o valor total dos itens digitados e mostra o valor 7.19 e chamo
uma tela para digitar o financeiro e programa transfere o0 valor de 7.19 com a diferenca de 0.01 centavo...
A pergunta é a seguinte tem alguma propriedade dos componentes que eu utilizo que eu tenho que alterar para
trazer o valor arredondado????? tenho que utilizar alguma função para eu resolver este problema......
Gostaria de receber ajuda dos colegas do portal para me ajudar a resolver este problema....
Grato pela atenção
Plácido Parussulo Netto
Placido
Curtidas 0
Respostas
Rui Lisboa
26/05/2006
Amigo faz o Seguinte:
FormatCurr(´#,,,,0.00´,val);
Val=valor;
FormatCurr(´#,,,,0.00´,val);
Val=valor;
GOSTEI 0
Placido
26/05/2006
Rui boa tarde!
Obrigado pela atenção, mas é exatamente isto que eu faço, veja o comando abaixo no delphi..
If (edtConsulta.text <> ´´) then
begin
dbCodigo.Visible := True;
cdsMestre.Close;
sdsMestre.Close;
sdsMestre.ParamByName(´EMP_CODIGO´).AsInteger := FrmPrincipalSGCAdm.CodEmpresa;
sdsMestre.ParamByName(´PED_NUMEROOPERACAO´).AsInteger := StrToInt(edtConsulta.text);
sdsMestre.Open;
cdsMestre.Open;
HabilitaBotao(ExcluirBTN);
FormatCurr(´#,,,,0.00´,cdsMestrePED_VRLIQUIDO.AsFloat);
end;
Continua mostrando o valor de 7.19 sem o arredondamento....
Grato pela atenção
Plácido
Obrigado pela atenção, mas é exatamente isto que eu faço, veja o comando abaixo no delphi..
If (edtConsulta.text <> ´´) then
begin
dbCodigo.Visible := True;
cdsMestre.Close;
sdsMestre.Close;
sdsMestre.ParamByName(´EMP_CODIGO´).AsInteger := FrmPrincipalSGCAdm.CodEmpresa;
sdsMestre.ParamByName(´PED_NUMEROOPERACAO´).AsInteger := StrToInt(edtConsulta.text);
sdsMestre.Open;
cdsMestre.Open;
HabilitaBotao(ExcluirBTN);
FormatCurr(´#,,,,0.00´,cdsMestrePED_VRLIQUIDO.AsFloat);
end;
Continua mostrando o valor de 7.19 sem o arredondamento....
Grato pela atenção
Plácido
GOSTEI 0
Rui Lisboa
26/05/2006
Então deve ter a ver com isto, com estas personalizações.
Painel de Controlo ------ Opções Regionais e de Idioma.
Aqui tem uma casa que é o numero de casas decimais.
So pode ser.
Porque o meu está a trabalhar a 100¬.
Depois diga algo.
Painel de Controlo ------ Opções Regionais e de Idioma.
Aqui tem uma casa que é o numero de casas decimais.
So pode ser.
Porque o meu está a trabalhar a 100¬.
Depois diga algo.
GOSTEI 0
Paullsoftware
26/05/2006
é simples de resolver amigo, tente assim:
Quando formatamos os valores do tipo float, a Máskara que vem depois do # final (0.00) é o numero de casas decimais que desejamos no valor por tanto ai vai alguns exemplos:
Coloque um Edit e um Button
no OnCLick do button faça:
Outro exemplo
Outro exemplo
espero ter ajudado :wink:
Quando formatamos os valores do tipo float, a Máskara que vem depois do # final (0.00) é o numero de casas decimais que desejamos no valor por tanto ai vai alguns exemplos:
Coloque um Edit e um Button
no OnCLick do button faça:
//Com uma casa decimal Edit1.Text := FormatFloat(´,,0.0´,StrToFloat(Edit1.Text)) //A linha acima aredonda o valor e deixa uma casa decimal
Outro exemplo
//Com duas casas decimais Edit1.Text := FormatFloat(´,,0.00´,StrToFloat(Edit1.Text)) //A linha acima aredonda o valor e deixa uma casa decimal
Outro exemplo
//Sem casas decimais Edit1.Text := FormatFloat(´,,0´,StrToFloat(Edit1.Text)) //A linha acima aredonda o valor e deixa uma casa decimal
espero ter ajudado :wink:
GOSTEI 0