[firebase-br] Arredondamento de valores.
Antonio Carlos
a.lima.silva em terra.com.br
Qua Set 5 08:53:22 -03 2007
Entendo que o sistema esteja arredondando
porque vc não recebe esse valor em uma variavel com 3 casas e lança truncado
na variavel de saida e ve como será exibido ?
----- Original Message -----
From: "Rubens J Rodrigues" <rubens.rodrigues em abrevo.com.br>
To: <lista em firebase.com.br>
Sent: Wednesday, September 05, 2007 8:17 AM
Subject: [firebase-br] Arredondamento de valores.
Pessoal,
Numa de minhas rotinas, estou com problemas de valores que são
arredondados pelo Firebird automáticamente, na verdade isto não deveria
acontecer uma vez que não solicitei e nem pretendia. Segue o cenário :
SISTEMA OPERACIONAL: WINXP SP2
SISTEMA SGDB : FIREBIRD 2.0 SUPERSERVER
SISTEMA DESENVOLV. : DELPHI 6 WITH IBO
MEMORIA EM USO : 1 GB
PAGINACAO DO FIREBIRD : 8096
============================================================
TABELA "FORMAPAGTO"
SEQ INTEGER
DESCRICAO VARCHAR(40)
TXADM NUMERIC(9,2) ---> AQUI INFORMO A TX ADMINISTRATIVA SE A VISTA = 0
...
TABELA "VENDAETIQUETAS"
SEQ INTEGER
CODFORMAPAGTO INTEGER
TOTAL NUMERIC(18,3)
...
TABELA "VENDAETIQUETASITENS"
SEQ INTEGER
CODVENDA
CODETIQUETA -----> APONTANDO PARA UMA TABELA DE ETIQUETA
QTDE INTEGER
VALORUNITARIO NUMERIC(18,3)
...
TRIGGER ----->VENDAETIQUETAITENS
AFTER UPDATE/INSERT POSITION 0
DECLARE VARIABLE VTXADM NUMERIC(9,2);
DECLARE VARIABLE VTOTAL NUMERIC(9,2);
-- AQUI PEGO A SOMA DOS VALOR DOS ITENS DA TABELA
SELECT COALESCE(SUM(QTDE * VALORUNITARIO),0) FROM VENDAETIQUETAS ITENS
WHERE CODVENDA=NEW.CODVENDA INTO VTOTAL;
-- AQUI PEGO A TX ADM DA FORMA DE PAGTO
SELECT COALESCE(TXADM,0) FROM FORMAPAGTO WHERE SEQ=XXXXX INTO VTXADM;
-- AGORA EU CALCULO O TOTAL X TX ADM
VTOTAL=VTOTAL * (1 + (VTXADM/100));
.........
CENÁRIO MONTADO E COM VALORES :
============================================================
VTOTAL = 1.99
VTXADM = 0
VTOTAL= 1.99 * (1+(0/100))
VTOTAL= 1.99 * (1 + 0)
VTOTAL= 1.99 * 1
==> DEVERIA SER VTOTAL=1.99
==> O SISTEMA COLOCA 2.01
DUVIDAS :
============================================================
ONDE PODE ESTAR O PROBLEMA?
Desde já agradeço,
att
Rubens
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
__________ Informação do NOD32 IMON 2505 (20070904) __________
Esta mensagem foi verificada pelo NOD32 sistema antivírus
http://www.eset.com.br
Mais detalhes sobre a lista de discussão lista