xs:double
The primitive type xs:double is patterned after an IEEE double-precision 64-bit floating-point number. The lexical representation is a mantissa (a decimal number) followed, optionally, by the letter E (in upper or lowercase), followed by an integer exponent. For example, 3E2 represents 3 × 102, or 300. In addition, there are three special values: INF, (infinity), -INF (negative infinity), and NaN (not a number).
Table B-8 lists some values of the xs:double type.
Table B-8. Values of the xs:double type
|
Values |
Explanation |
|---|---|
|
Valid | |
−5E12 | |
44.56E5 | |
+23.2e−2 | |
12 | |
+3.5 |
Any value valid for |
−0 |
Negative zero |
INF |
Positive infinity |
NaN |
Not a number |
|
Invalid | |
−5E3.5 |
The exponent must be an integer |
37E |
An exponent must be specified if |
|
An empty value or zero-length string is not permitted |
XQuery makes a distinction between positive and negative zero values for the xs:double type. 0 and −0 are considered to be equal but separate values.
The implementation has some flexibility regarding how to handle overflow or underflow during arithmetic operations on xs:double values. The processor may raise an error. Alternatively, in an overflow situation, it may return INF, -INF, or the largest or smallest possible value. For underflow, it may return the closest possible value to zero.
Casting xs:double Values
Values of type xs:double can be cast to and from any of the other numeric types. Casting among numeric ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access