Read XSLT 2.0 and XPath 2.0 Programmer's Reference, 4th Edition Online
Authors: Michael Kay
When the operands of an arithmetic operator such as + or * have types for which this operator is not defined, a type error is reported. | When the operands of an arithmetic operator such as + or * have types for which this operator is not defined, the supplied operands are converted to numbers using the number() function. |
Arithmetic may be carried out in integer, decimal, float or double depending on the operands. | Arithmetic is always carried out in double-precision floating point. |
In an expression such as A and B or A or B , the operands may be evaluated in either order. | In an expression such as A and B or A or B , the first operand is evaluated first, and the other operand is not evaluated if not needed. |