formatar inteiro
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!
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
Curtidas 0
Respostas
Rjun
15/04/2006
Você armazena valor em campo string?
GOSTEI 0
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
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.
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
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
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?
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
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
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.
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
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
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...
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
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
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.
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
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
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
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].
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