Pessoal, estou com um problema. Preciso usar uma função que trunque o valor em uma procedure Firebird.
Por ex:
Tenho o valor 12,589. Gostaria que esse valor tornasse 12,58 e não 12,59 (Valor arredondado).
Alguma sugestão?
Pessoal, estou com um problema. Preciso usar uma função que trunque o valor em uma procedure Firebird.
Por ex:
Tenho o valor 12,589. Gostaria que esse valor tornasse 12,58 e não 12,59 (Valor arredondado).
Alguma sugestão?
Thyago,
Você já deve ter achado a solução mas vai a reposta para o pessoal que tiver a mesma dúvida.
Supondo que já esteja conectado na sua database pode fazer o teste:
SQL> select 15 / cast(7 as double precision) from rdb$database;
DIVIDE
=======================
2.142857142857143
Para arredondar com round: http://www.firebirdsql.org/refdocs/langrefupd25-intfunc-round.html
SQL> select round(15 / cast(7 as double precision),3) from rdb$database;
ROUND
=======================
2.143000000000000
Observação o tipo de arredondamento feito por round é o usado no Brasil e segue a Norma ABNT NBR 5891.
Para truncar use trunc: http://www.firebirdsql.org/refdocs/langrefupd25-intfunc-trunc.html
SQL> select trunc(15 / cast(7 as double precision),3) from rdb$database;
TRUNC
=======================
2.142000000000000
Observação o truncamento pode e conterá mais erros nas contas finais que o arredondamento.
Observação final: Testado no firebird 2.5.5.