GARANTIR DESCONTO

Fórum Casas decimais no Firebird #44782

11/06/2004

0

Fala ae moçada !!

Migrei pracialmente meu programa de paradox para firebird, e estou tendo problemas com os campos numericos...

deifini na tabela numeric(15,2) mas ele naum grava so com 2 casa decimais !!! e isso dah pau em arredondamentos de notas fiscais.... quantidade x valor do produto...

Entenderam ?!!

como resolvo esse problema ?!!

uso query1.campo.value


Falow !!!!


Marfred

Marfred

Responder

Posts

15/06/2004

Marfred

sobe


Responder

Gostei + 0

17/06/2004

Marfred

sobe...


Responder

Gostei + 0

23/06/2004

Christian_adriano

Olá,

em vez de vc utilizar os campos númericos do tipo ´NUMERIC´ (numeric(15,2)), utilize do tipo ´DOUBLE PRECISION´.


Responder

Gostei + 0

23/06/2004

Afarias

|em vez de vc utilizar os campos númericos do tipo ´NUMERIC´ (numeric
|(15,2)), utilize do tipo ´DOUBLE PRECISION´.

NÃO FAÇA ISSO MESMO!

Quando se usa NUMERIC vc dá chance ao banco de escolher o melhor TIPO de dados para guardar os valores numéricos. Enquanto DOUBLE é reconhecidamente um péssimo formato para valores monetários por ter baixa ´precisão´.

Quanto o arrendondamento o banco não pode fazer por vc pois seria arbritária! VC que deve no seu programa, arredondar ou truncar como achar melhor (ou mesmo usar uma UDF no banco para isso)



T+


Responder

Gostei + 0

24/06/2004

Marfred

naum estendi sobre o arredondamento...


Responder

Gostei + 0

24/06/2004

Afarias

Qual exatamente o problema q vc está passando e qual a versão do FB... acho q eu entendi errado.


T+


Responder

Gostei + 0

25/06/2004

Marfred

Uso Firebird 1.5 Final com Zeos....

meu problema é que os valores de currency ele grava como inteiro na tabela do banco.....

Ex: 4,96 ele grava 4....


eu uso um componente da rxlib.... currencyedit, sera q é isso q naum tah dando certo ? daí eu atribuo o valor do edit ao campo...

assim: query1campo1.asscurrency:=currencyedit1.value.....

deve ser isso pois se eu fiz teste de insercao com sql e ele grava normal.... qual a solucao ?


Responder

Gostei + 0

28/06/2004

Marfred

sobe...


Responder

Gostei + 0

28/06/2004

Afarias

Seu problema deve estar no seu código ou nos componentes de acesso q usa (Zeos no caso)!

AsCurrency está perfeito! É a melhor opção no caso!

DecimalSeparator pode ser definido por vc. inicialmente é carregado com o q está configurado no Windows. A princípio não acho q seja seu problema, mas ... se estiver como ´.´ terá de informar os valores na forma ´2.35´ por exemplo (nos edits)



T+


Responder

Gostei + 0

28/06/2004

Marfred

Kra.... acho q o zeos deve ter algum bug.... (naum sei)

Acho q descobri o erro....

Eu tinha um dominio criado como numeric(15,2) e nos campos da tabela eu indicava os dominios, daí percebi q um campo q eu tinha como numeric(15,6) sem dominio tava dando certo....

Daí eu tirei o dominio dos campos e joguei como numeric(15,2), daí deu CERTO !!!!

ACREDITAM ?!!!

Se tem alguma coisa a ver eu naum sei, mas q foi isso q resolveu meu problema, porém... naum uso mais domínios será ???

Alguem jah teve esse problema com o ZEOS ?!

Aceito comentários..... rsss


Responder

Gostei + 0

01/07/2004

Marfred

gostaria q alguem comentasse sobre esse meu problema.....


Responder

Gostei + 0

27/08/2004

Nigro

Uso o FB 1.5, com DBX e D7, foi só apagar os domains....


Responder

Gostei + 0

24/10/2005

Letb

Eu usava o FB 1.5 com ADO e IBFree, funcionava normal. Passei a usar o Zeos 6.1.5 e tive o mesmo problema. Usando o mesmo Zeos com MS-SQL não tinha qualquer problema.

Fiz o que vc sugeriu e resolveu também, mas no meu caso tive que pedir para criar um novo domínio, dai ficou new_domain, mas funcionou.

Vlw pela dica!


Responder

Gostei + 0

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

Aceitar