Ir para conteúdo
  • Cadastre-se

dev botao

Arredondamento em campos Aggregate no ClientDataSet


Ver Solução Respondido por EMBarbosa,
  • Este tópico foi criado há 1586 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde gente, tudo bem?
 

Me falta um pouco de conhecimento sobre o ClientDataSet, procurei em tudo quanto é lugar e não encontrei a solução, espero que alguém possa me dar uma luz.

 

Seguinte, tenho um ClientDataSet com um campo como Float, fkInternalCalc e com a mascara #,##0.00. Nesse campo os valores estão sendo arredondados, mas no Aggregate Field a soma (usei SUM no exp) é feito sem o arredondamento.

Exemplo: 

Tenho 2 item com valor de 35.9450

No meu DbGrid aparece 35.95, a soma daria 71.90, mas no Aggregate aparece 71.89... 

Eu vi em um post que 

> 5 arredonda para cima

= 5 mantem

< 5 arredonda para baixo

Mas no meu caso, eu só coloquei a mascara #,##0.00 no DisplatFormat e ele está arredondando sozinho dessa forma. Tentei usar o Currency = True para ambos, também tentei mudar o campo de Float para Currency e deu na mesma.

Então, pelo o que eu li no forum não deveria arredondar o valor para 35.95, mas ele está fazendo isso... 

Com apenas dois itens a diferença é pouca, mas quando são tipo uns 56 itens a diferença fica grande. Alguém poderia me dar uma luz?

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Olá,

Em 10/12/2019 at 16:57, Mariana Tamy disse:

Seguinte, tenho um ClientDataSet com um campo como Float, fkInternalCalc e com a mascara #,##0.00. Nesse campo os valores estão sendo arredondados, mas no Aggregate Field a soma (usei SUM no exp) é feito sem o arredondamento.

Em 10/12/2019 at 16:57, Mariana Tamy disse:

Mas no meu caso, eu só coloquei a mascara #,##0.00 no DisplatFormat e ele está arredondando sozinho dessa forma. Tentei usar o Currency = True para ambos, também tentei mudar o campo de Float para Currency e deu na mesma.

  Me parece que você está considerando o valor como sendo arredondado pela máscara que está usando. Mas o valor não está sendo arredondado.

   A máscara no DisplayFormat é apenas para visualização (Display). Isso quer dizer que não altera o valor do campo. Ele vai te mostrar arredondado, mas o valor não foi arredondado.

   Se você quer que o valor seja arredondado, tem que fazer na atribuição do campo.

  • Curtir 2

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Administradores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1586 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...