xs:decimal

The primitive type xs:decimal represents a decimal number. The lexical representation of xs:decimal is a sequence of digits that can be preceded by a sign (+ or -) and may contain a decimal point (.). Trailing zeros after the decimal point are not considered significant. That is, the decimal values 5.1 and 5.1000 are considered equal.

Table B-7 lists some values of the xs:decimal type.

Table B-7. Values of the xs:decimal type

Values

Explanation

Valid

 
5.0
 
−5.2

A sign is permitted

6

A decimal point is not required

0
 
0006.000

Leading and trailing zeros are valid

Invalid

 
5,6

The decimal separator must be a period, not a comma

1e6

Exponential notation is not allowed; use xs:float or xs:double instead

 

An empty value or zero-length string is not permitted

Implementations vary in the number of significant digits they allow. They are free to round or truncate values to the number of digits they support. If overflow occurs during arithmetic operations on xs:decimal values, an error is raised. When underflow occurs, the value 0.0 is returned.

Casting xs:decimal Values

Values of type xs:decimal can be cast to and from any of the other numeric types. Casting among numeric types is straightforward if the value is in the value space of both types. For example, casting an xs:decimal value 12.5 to xs:float results in a value 12.5E0 whose type is xs:float.

However, some xs:float or xs:double values cannot be cast to xs:decimal. An error is raised if you attempt ...

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.