# Datatype functions

A value can be a number, text, Null, a handle or a reference. Integers, reals, Boolean, and date values, are all represented as numbers. You can use these functions from the Special library of Definition menu to determine the type.

IsNumber(x): Returns True if «x» is a number, including a boolean, date, INF, NaN, or complex. See also IsNumber().

IsNumber(0) → True
IsNumber(False) → True
IsNumber(INF) → True
IsNumber('hi') → False
IsNumber(5) → True
IsNumber('5') → False
IsNumber(NAN) → True

IsText(x): Returns True if «x» is a text value. See also IsText().

IsText('hello') → True
IsText(7) → False
IsText('7') → True

IsNaN(x): Returns True if «x» is “not a number,” i.e., NaN. INF or regular numbers do not qualify, nor does a text or Null. See also IsNaN().

0/0 → NAN
IsNaN(0/0) → True
IsNaN(5) → False
IsNaN(INF) → False
IsNaN('Hello') → False

IsNull(x): To test if «x» is exactly Null. Returns false if «x» is an array. See also IsNull().

x = NULL: To test if an atomic «x» is Null. When «x» is an array, returns True or False for each element of the array.

IsUndef(x): Returns True if atomic «x» is Null or the internal value Undefined (usually indicating uncomputed). When «x» is an array, returns True or False for each element of the array. See also IsUndef().

IsRealNumber(x): Returns True when «x» is a real number, including a boolean, date or INF. Returns False when «x» is a complex number or NaN. See also IsRealNumber().

IsReference(x): Returns True if «x» is a reference to a value. See also IsReference().

IsHandle(x): Returns True if «x» is a handle to an Analytica object. See also IsHandle(x).

TypeOf(x): Returns the type of expression «x» as a text value. Real numbers will be 'Number', 'FixedPoint', or 'Integer', depending on how «x» is internally represented. Other common values are 'DateTime', 'ComplexNumber', 'Text', 'Reference', and 'Null'. INF and NaN are both of type "Number". See also TypeOf().

TypeOf(Pi) → "Number"
TypeOf(2008) → "Integer"
TypeOf('2008') → "Text"
TypeOf(INF) → "Number"
TypeOf(0/0) → "Number"
TypeOf(Null) → "Null"
TypeOf(\2008) → "Reference"

IsNotSpecified(x): Used in a User-defined function with an optional function parameter «x» to test whether the parameter was omitted be the caller. When omitted, «x» has the special internal value of Undefined. See also IsNotSpecified.

If IsNotSpecified(x) Then x := a;