Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3654 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Pessoal, boa tarde

 

Atualmente trabalhamos nas nossas aplicações nos campos monetários adotando 2 (duas) casas decimais. Recentemente fechamos com uma rede franquias que utilizam obrigatoriamente 4(quatro) casas decimais para preço. Como trabalhamos com Firebird 2.5.2.26540 utilizamos o tipo Numeric(9,2) guardar os valores monetários. Estou querendo modificar para 4 casas decimais e não estou conseguindo achar uma referência consistente sobre o assunto. Simplesmente eu poderia modificar os tipos para Numeric(9,4) mas queria olhar se os colegas que utilizam 4 casas decimais para preço utilizam a mesma notação de Numeric(9,4).

 

Att

3 Virtudes de um líder:
1) Ensinar o que se sabe
2) Praticar o que se ensina
3) Aprender o que se ignora

  • Consultores
Postado

Você já leu os artigos na Firebase?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

Achei um artigo muito interessante sobre o assunto que fala da diferença entre NUMERIC  e DECIMAL mas ainda não encontrei maneira clara que mostre a relação entre Digito e Precisão. Por exemplo o tipo de dado Numeric(15,4) dá overflow com o valor 999999.0000.

3 Virtudes de um líder:
1) Ensinar o que se sabe
2) Praticar o que se ensina
3) Aprender o que se ignora

Postado

Achei um artigo muito interessante sobre o assunto que fala da diferença entre NUMERIC  e DECIMAL mas ainda não encontrei maneira clara que mostre a relação entre Digito e Precisão. Por exemplo o tipo de dado Numeric(15,4) dá overflow com o valor 999999.0000.

 

Olá companheiro, no postgre e sqlite é possível disparar eventos no banco com scripts sql.... Verifique se o firebird dispõe deste recurso... caso sim, você poderá realizar o feito sem a necessidade de muitas alterações no código do programa...

  • Consultores
Postado

Achei um artigo muito interessante sobre o assunto que fala da diferença entre NUMERIC  e DECIMAL mas ainda não encontrei maneira clara que mostre a relação entre Digito e Precisão. Por exemplo o tipo de dado Numeric(15,4) dá overflow com o valor 999999.0000.

Ou eu não entendi o que você quer ou você muito provavelmente está fazendo alguma coisa que não está nos dizendo. O valor mencionado não precisa gerar overflow. Veja:

select  cast(999999.0000 as numeric(15,4))
from RDB$Database

Você talvez esteja multiplicando este valor por outro e o resultado sim é outro formato.

 

Por exemplo, se multiplicar o valor mencionado por 1,0001 que é NUMERIC (15,4) o resultado vai ser 1000098,99990000 que é NUMERIC (15,8). Este resultado não vai poder ser armazenado num Numeric (15,4) sem perda de dados.

Para mais informações, veja este link e procure mais informações sobre essa multiplicação na net (como esse link) e no site Firebase, como os artigos 104 e 274.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Este tópico foi criado há 3654 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.