A decimal floating-point constant specifies a decimal floating-point number as two numbers separated by an E. The first number can include a sign and a decimal point; the second number can include a sign but not a decimal point. The value of the constant is the product of the first number and the power of 10 specified by the second number; it must be within the range of DECFLOAT(34). The number of characters in the constant must not exceed 42. Excluding leading zeros, the number of digits in the first number must not exceed 34 and the number of digits in the second must not exceed 4.
In addition to numeric constants, the following reserved
keywords can be used to specify decimal floating-point special values.
These special values are: INFINITY, NAN, and SNAN. INFINITY represents
infinity, a number whose magnitude is infinitely large. INFINITY can
be preceded by an optional sign. INF can be specified in place of
INFINITY. NAN represents Not a Number (NaN) and is sometimes called
quiet NaN. It is a value that represents undefined results which does
not cause a warning or exception. SNAN represents signaling NaN (sNaN).
It is a value that represents undefined results which will cause a
warning or exception if used in any operation that is defined in any
numerical operation. Both NAN and SNAN can be preceded by an optional
sign, but the sign is not significant
for arithmetic
operations
. SNAN can be used in non-numerical operations without
causing a warning or exception, for example in the VALUES list of
an INSERT or as a constant compared in a predicate.
When
one of the special values (INFINITY, NAN, and SNAN) is used in a context
where it could be interpreted as a name, explicitly cast the value
to decimal-floating point. For example:CAST('SNAN' AS DECFLOAT(34))

1.8E308 -1.23456789012345678E-2 SNAN -INFINITY