Fórum Casas decimais no Firebird #44782
11/06/2004
0
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
Curtir tópico
+ 0Posts
15/06/2004
Marfred
Gostei + 0
17/06/2004
Marfred
Gostei + 0
23/06/2004
Christian_adriano
em vez de vc utilizar os campos númericos do tipo ´NUMERIC´ (numeric(15,2)), utilize do tipo ´DOUBLE PRECISION´.
Gostei + 0
23/06/2004
Afarias
|(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+
Gostei + 0
24/06/2004
Marfred
Gostei + 0
24/06/2004
Afarias
T+
Gostei + 0
25/06/2004
Marfred
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 ?
Gostei + 0
28/06/2004
Marfred
Gostei + 0
28/06/2004
Afarias
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+
Gostei + 0
28/06/2004
Marfred
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
Gostei + 0
01/07/2004
Marfred
Gostei + 0
27/08/2004
Nigro
Gostei + 0
24/10/2005
Letb
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!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)