[firebase-br] Arredondamento de valores.

Paulo Geloramo paulogeloramo em terra.com.br
Qua Set 5 09:59:06 -03 2007


O padrão do Firebid é arredondar 4/5, caso você
queira truncar o valor pode subtrair 0.005.

Se o valor for negativo tem que somar 0.005.

[]s
Paulo Geloramo


----- 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





Mais detalhes sobre a lista de discussão lista