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 xs:decimal is also valid for xs:float and xs:double

−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 E is present

 

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 ...

Get XQuery now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.