Fórum Ajuda com o Cast #54058

02/12/2005

0

Olá, tenho um campo que é varchar(5) pra calcular eu faço assim:

media = (cast(nota1 as decimal(15,1) + cast(nota2 as decimal(15,1))/2

funciona´direitinho, só que o meu cliente quer usar a virgula como ponto decimal, ou seja, no sistema eu mudei lá o DecimalSeparator, mas e no firebird?
Pois se fosse assim:
nota1=20,0
nota2=20,0

a media deveria ficar: 20,0

porem ao calcular ele poe como 200,0, ou seja, me parece que ele nao reconhece a virgula como sendo ponto decimal.

P.S.: Estou usando varchar pois eles podem deixar com um - ao inves de numero, e isso ja estou tratando antes de fazer a conta, ou seja, so faz a conta se for diferente de -.

Desde já aradeço.


Titanius

Titanius

Responder

Posts

02/12/2005

Afarias

|me parece que ele nao reconhece a virgula como sendo ponto decimal.

EXATO! e não tem como mudar.


|P.S.: Estou usando varchar pois eles podem deixar com um - ao inves
|de numero,

Veja, vc pode transformar a vírgula em ponto antes de gravar e fazer a operação inversa quando for mostrar o número na tela.

De qualquer forma, na minha opnião, *não* há motivo para se usar um campo alfanumérico para representar uma informação númerica.

Facilmente vc poderia deixar o campo nulo quando o usuário digitasse - e na volta preencher o edit com - quando o campo fosse nulo


T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar