Fórum Arredondamento #365047
14/10/2008
0
estou com a seguinte situação
Tenho um valor no banco armazenado da seguinte forma 14650,425
preciso que no delphi ele mostre 14650,43
porem ele mostra 14650,42 e ao clicar com o mouse no dbedit ele mostra 14650,425
a regra de arredondamento diz que o valor é de 5 para cima
ja coloquei no banco tipo de campo numeric, double precision.
Todos os calculos estão no banco, por isso não posso usar o round.
o que fazer?
Meu banco é firebird, delphi 2006, dbExpress.
Upgradesource
Curtir tópico
+ 0Posts
14/10/2008
Nilmarvi2005
DisplayFormat
#,0.00 exibe 2.525,20
0.00 exibe 2525,20
EditFormat
,0.00 exibe 2.525,20
0.00 exibe 2525,20
Gostei + 0
14/10/2008
Upgradesource
Gostei + 0
14/10/2008
Rafaelfornazari
Gostei + 0
15/10/2008
Upgradesource
por isso não posso usar o round.
Alguma outra ideia?
Gostei + 0
16/10/2008
Juniorvieira
´Tenho um valor no banco armazenado da seguinte forma 14650,425´
(NO BANCO)
Ora, se está certo no banco, quem está fazendo a cagada é seu dataset, certo ?
O delphi trabalha com uma regra de arredondamento que é :
Sempre arredondar para o numero par mais proximo quando dá alguma
conta como 1,5.
Ex: 1,5 -> arredonda para 2,0 2,5 ->arrendonda para 2.0 também
3,5 -> arredonda para 4.0 e por aí vai.....
Vc repara que ora arredonda para baixo e ora para cima. logo não é confiavel. Já pensou calcular nota de aluno ???? ia dar uma confusão só. hehehe :P .Justamente pela regra do par.
Vc deve usar alguma função do tipo truncate, eu fazia muito isso quando recebia esses tipos de valores em TXT. convertia o valor para String e brincava com o finalzinho e depois converia novamente para numero.
Abraço
Gostei + 0
16/10/2008
Upgradesource
pois pelo que entendi vc sugere que eu utilize uma ferramenta antes de jogar dos dados para a tela. se for torna-se mais trabalhoso.
Mas muito obrigado pela atenção.
[ ]´s
Gostei + 0
16/10/2008
Juniorvieira
abraço.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)