Transformation Language Reference > Functions > TRUNC (Numbers)
  

TRUNC (Numbers)

Truncates numbers to a specific digit. You can also use TRUNC to truncate dates.

Syntax

TRUNC( numeric_value [, precision] )
The following table describes the arguments for this command:
Argument
Required/
Optional
Description
numeric_value
Required
Numeric datatype. Passes the values you want to truncate. You can enter any valid transformation expression that evaluates to a Numeric datatype.
precision
Optional
Can be a positive or negative integer. You can enter any valid transformation expression that evaluates to an integer. The integer specifies the number of digits to truncate.
If precision is a positive integer, TRUNC returns numeric_value with the number of decimal places specified by precision. If precision is a negative integer, TRUNC changes the specified digits to the left of the decimal point to zeros. If you omit the precision argument, TRUNC truncates the decimal portion of numeric_value and returns an integer.
If you pass a decimal precision value, the Data Integration Service rounds numeric_value to the nearest integer before evaluating the expression.
When you run a session in high precision mode, use the ROUND function before truncating.
For example, suppose the following expression is used to truncate the values in the QTY port:
TRUNC ( QTY / 15 )
When the value for QTY = 15000000, the session returns the value 999999. The expected result is 1000000.
At run time, the Data Integration Service evaluates the constant part of the expression and then the variable part.
In the above expression, QTY is the variable value and (1/15) is the constant value.
When QTY = 15000000, the expression is evaluated as follows:
TRUNC ( 15000000 * (1/15)
TRUNC ( 15000000 * (1/15)
= TRUNC ( 15000000 * 0.0666666666666666)
= TRUNC ( 15000000 * 0.0666666666666666)
= TRUNC ( 999999.99999999)
= 999999
If you use the ROUND function before truncating, the expression is evaluated as follows:
TRUNC (ROUND (QTY/15, .99999999999999999999999999)).

Return Value

Numeric value.
NULL if one of the arguments is NULL.

Examples

The following expressions truncate the values in the Price port:
TRUNC( PRICE, 3 )
PRICE
RETURN VALUE
12.9995
12.999
-18.8652  
-18.865
56.9563
56.956
15.9928
15.992
NULL
NULL
TRUNC( PRICE, -1 )
PRICE
RETURN VALUE
12.99
10.0
-187.86  
-180.0
56.95
50.0
1235.99
1230.0
NULL
NULL
TRUNC( PRICE )
PRICE
RETURN VALUE
12.99
12.0
-18.99  
-18.0
56.95
56.0
15.99
15.0
NULL
NULL