[firebase-br] Arredondamento/Truncamento Firebrid

Paulo Portella pportellaa.firebase em gmail.com
Qui Maio 12 15:50:25 -03 2011


http://www.firebirdsql.org/refdocs/langrefupd21-intfunc-trunc.html


    TRUNC()

Available in: DSQL, PSQL

Added in: 2.1

Description: Returns the integer part of a number. With the optional 
/|scale|/ argument, the number can be truncated to powers-of-ten 
multiples (tens, hundreds, tenths, hundredths, etc.) instead of just 
integers.

Result type: INTEGER, (scaled) BIGINT or DOUBLE

Syntax:

    TRUNC (/|<number>|/  [,/|<scale>|/])

    /|<number>|/   ::=  a numerical expression
    /|<scale>|/    ::=  an integer specifying the number of decimal places
                    toward which should be truncated, e.g.:
                       2 for truncating to a multiple of 0.01
                       1 for truncating to a multiple of 0.1
                       0 for truncating to a whole number
                      -1 for truncating to a multiple of 10
                      -2 for truncating to a multiple of 100

Notes:

    *

      If the /|scale|/ argument is present, the result usually has the
      same scale as the first argument, e.g.

          o

            TRUNC(789.2225, 2) returns 789.2200 (not 789.22)

          o

            TRUNC(345.4, -2) returns 300.0 (not 300)

          o

            TRUNC(-163.41, 0) returns -163.00 (not -163)

      Otherwise, the result scale is 0:

          o

            TRUNC(-163.41) returns -163


      Important

If you are used to the behaviour of the external function |TRUNCATE|, 
please notice that the /internal/ function TRUNC always truncates toward 
zero, i.e. upward for negative numbers.


Vida de americano é assim: iPhone, iPod, iPad, iMac....
Já a de brasileiro é assim:IPTU, IPVA, ICMS, IPI etc


Em 12/05/2011 12:15, Rafa Pimenta escreveu:
> Boa tarde a todos,
> Estou precisando truncar um valor que está com 3 casas decimais de forma que
> ele só fique com a parte inteira no firebrid.
> Observei que o cast arredonda o valor, como faço para truncá-lo?
>
> Exemplo usando cast:
>
> valor 1,99
> resultadot: 2
>
> Exemplo que eu preciso:
> valor 1,99
> resultado: 1
>
> Obrigado.
>



Mais detalhes sobre a lista de discussão lista