Transformation Language Reference > Functions > IS_NUMBER
  

IS_NUMBER

Returns whether a string is a valid number. A valid number consists of the following parts:
The following numbers are all valid:
' 100  '
'   +100'
'-100'
'-3.45e+32'
'+3.45E-32'
'+3.45d+32' (Windows only)
'+3.45D-32' (Windows only)
'.6804'
The output port for an IS_NUMBER expression must be a String or Numeric datatype.
You might use IS_NUMBER to test or filter data in a flat file before writing it to a target.

Syntax

IS_NUMBER( value )
The following table describes the argument for this command:
Argument
Required/
Optional
Description
value
Required
Must be a String datatype. Passes the rows you want to evaluate. You can enter any valid transformation expression.

Return Value

TRUE (1) if the row is a valid number.
FALSE (0) if the row is not a valid number.
NULL if a value in the expression is NULL.

Examples

The following expression checks the ITEM_PRICE port for valid numbers:
IS_NUMBER( ITEM_PRICE )
ITEM_PRICE
RETURN VALUE
'123.00'
1 (True)
'-3.45e+3'
1 (True)
'-3.45D-3'
1 (True - Windows only)
'-3.45d-3'
0 (False - UNIX only)
'3.45E-'
0 (False)  Incomplete number
'    '
0 (False)  Consists entirely of blanks
''
0 (False)  Empty string
'+123abc'
0 (False)
'  123'
1 (True)  Leading white blanks
'123  '
1 (True)  Trailing white blanks
'ABC'
0 (False)
'-ABC'
0 (False)
NULL
NULL
Use IS_NUMBER to test data before using one of the numeric conversion functions, such as TO_FLOAT. For example, the following expression checks the values in the ITEM_PRICE port and converts each valid number to a double-precision floating point value. If the value is not a valid number, the Data Integration Service returns 0.00:
IIF( IS_NUMBER ( ITEM_PRICE ), TO_FLOAT( ITEM_PRICE ), 0.00 )
ITEM_PRICE
RETURN VALUE
'123.00'
123
'-3.45e+3'
-3450
'3.45E-3'
0.00345
'    '
0.00   Consists entirely of blanks
''
0.00   Empty string
'+123abc'
0.00
''  123ABC'
0.00
'ABC'
0.00
'-ABC'
0.00
NULL
NULL