xs:float
The primitive type xs:float is patterned after an IEEE single-precision 32-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-10 lists some values of the xs:float type.
Table B-10. Values of the xs:float 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:float type. 0 and −0 are considered to be equal but separate values.
The implementation has some flexibility regarding how to handle overflow or underflow occurs during arithmetic operations on xs:float 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:float Values
Values of type xs:float can be cast to and from any of the other numeric types. Casting among numeric ...