[firebase-br] Arredondamento de valores.

Moacir - GMail prismars em gmail.com
Qua Set 5 08:27:14 -03 2007


Rubens,

Uma sugestão:

Use cast ao efetuar os calculos !!

SELECT Cast(COALESCE(SUM(QTDE * VALORUNITARIO),0) as decimal(18,2)) FROM VENDAETIQUETASITENS 
WHERE CODVENDA=NEW.CODVENDA INTO VTOTAL;



[ ]´s
Moacir


Rubens J Rodrigues escreveu:
> 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