formatar inteiro

Delphi

15/04/2006

Amigos

tenho no meu banco interbase

uns campos string onde eu armazeno valor tipo assim: 10,0 ... 7,5 ... 8,0

mas quando faço uma soma digamos de dois valores usando um filtro assim:

somar 7,5 e 7,0

select sum (MEDIA_FINAL) from NOTAS
where MATRICULA = ´00000002002004-0´

o resultado final é : 145

e não 14,5 como eu desejaria que fosse o resultado, a consulta está somando 75 + 70 ao inves de 7,5 + 7,0

como é possivel resolver isto?

grato!


Erivando

Erivando

Curtidas 0

Respostas

Rjun

Rjun

15/04/2006

Você armazena valor em campo string?


GOSTEI 0
Erivando

Erivando

15/04/2006

Você armazena valor em campo string?


sim.

será que é por isto?

no meu caso teve de ser em string!


GOSTEI 0
Rjun

Rjun

15/04/2006

Não consigo imaginar o motivo de usar string para guarda valores decimais que serão usados para cálculo.

Não sei que banco de dados você está usando, mas nem deveria permitir você somar strings. Converta o campo para decimal ou faça um cast.


GOSTEI 0
Erivando

Erivando

15/04/2006

Não consigo imaginar o motivo de usar string para guarda valores decimais que serão usados para cálculo. Não sei que banco de dados você está usando, mas nem deveria permitir você somar strings. Converta o campo para decimal ou faça um cast.


em meu caso usei assim, porque eu gostaria da visualização sendo com ´,´ e não ´.´

sendo 8,7 e não 8.7 caso seja campo numeral

como posso resolver isto usando cast?


GOSTEI 0
Rjun

Rjun

15/04/2006

Para você resolver esse problema de visualização o indicado seria você formatar a saída, não é?

Fiz um teste aqui, com SQL SERVER e não consegui fazer o CAST já que para ele o ponto separa a parte decimal e não a virgula. Que banco de dados você está usando?


GOSTEI 0
Erivando

Erivando

15/04/2006

Para você resolver esse problema de visualização o indicado seria você formatar a saída, não é? Fiz um teste aqui, com SQL SERVER e não consegui fazer o CAST já que para ele o ponto separa a parte decimal e não a virgula. Que banco de dados você está usando?


è o INTERBASE 6.02.0


GOSTEI 0
Rjun

Rjun

15/04/2006

Realmente não sei se fazer um CAST irá resolver já que o separador decimal deve ser o ponto pro INTERBASE também.

Minha sugestão:
Converta esse campo para numeric e utilize formatação para exibir os valores de acordo com o que você queira.


GOSTEI 0
Erivando

Erivando

15/04/2006

Realmente não sei se fazer um CAST irá resolver já que o separador decimal deve ser o ponto pro INTERBASE também. Minha sugestão: Converta esse campo para numeric e utilize formatação para exibir os valores de acordo com o que você queira.


mim dar um help!

eu visualizo estes dados em um dbgrid.

onde e como eu poderia estar adiconando mascara para exibir com ´,´ ?

já tentei fazer mas não deu certo, uso TIBquery como tabela será que em DisplayFormat? e para imprimir com ´,´ como seria no quickReport?


GOSTEI 0
Marco Salles

Marco Salles

15/04/2006

uma outra opção é voce alterar as configuraçoes regionais do Windows , via programação

No evento OnShow por exemplo

DecimalSeparator:=´.´;
ThousandSeparator:=´,´;

A partir dai a forma como é exibido para separar os decimais é o Ponto

Acho que resolve...


GOSTEI 0
Erivando

Erivando

15/04/2006

Realmente não sei se fazer um CAST irá resolver já que o separador decimal deve ser o ponto pro INTERBASE também. Minha sugestão: Converta esse campo para numeric e utilize formatação para exibir os valores de acordo com o que você queira.


qual o numeric correto devo usar 18,2 ou 10,2 preciso de somente assim: 00,0

numeric é melhor que decimal?


GOSTEI 0
Rjun

Rjun

15/04/2006

[b:83f388442e] MIM DAR UM HELP?????????????????[/b:83f388442e]

Morro de rir com isso...

Agora falando sério, utilize a propriedade DISPLAY FORMAT e coloque #0,00, desde que você converta seu campo para numeric.


GOSTEI 0
Erivando

Erivando

15/04/2006

[b:a0b4bd91b8] MIM DAR UM HELP?????????????????[/b:a0b4bd91b8] Morro de rir com isso... Agora falando sério, utilize a propriedade DISPLAY FORMAT e coloque #0,00, desde que você converta seu campo para numeric.


Sim!!! qual o problema com: MIM DAR UM HELP?????????????????
aqui no forum deve se levar em consideração o fato relatado não a forma de português/ Inglês mensionado, assim, os participantes não estão obrigados a ajudar quem precisa! sendo que vc passa a ser um não contribuidor/participante do forum, ou melhor vc nem precisaria está aqui cadastrado!

erivando


GOSTEI 0
Erivando

Erivando

15/04/2006

[b:fe56fa6378] MIM DAR UM HELP?????????????????[/b:fe56fa6378] Morro de rir com isso... Agora falando sério, utilize a propriedade DISPLAY FORMAT e coloque #0,00, desde que você converta seu campo para numeric.


A proposito!

já usei a dica amigável e educada do amigo Marco Salles
e deu tudo certo.

obg!


GOSTEI 0
Rjun

Rjun

15/04/2006

Sei que não devia levar adiante esse tipo de discussão, e se algum moderador quiser apagar ou dar alguma punição esteja a vontade, mas caro INFORAMOS, se você acha que agi com grosseria você realmente não me conhece, pois fui até sutil com você. Não é por que estamos em um fórum de programação que devemos escrever tudo errado. Pelo menos um mínimo de correção deveria ser mantido.

Agora, como você utilizou a dica amigável do Marco Salles, fiquei com uma dúvida? Você converteu seu campo de string para numeric?

PS:
É [b:cde17a9ebf]MENCIONADO[/b:cde17a9ebf].


GOSTEI 0
POSTAR