Rounds a value to a specified number of decimal places, rounding to make the last digit even if two such values are equally near.
fn:round-half-to-even( $arg as xs:numeric?xs:numeric?fn:round-half-to-even( $arg as xs:numeric?,$precision as xs:integerxs:numeric?General rules: see .
The function returns the nearest (that is, numerically closest) value to
               $arg that is a multiple of ten to the power of minus
               $precision. If two such values are equally near (e.g. if the fractional
            part in $arg is exactly .500...), the function returns the one whose least
            significant digit is even.
For the four types xs:float,
            xs:double, xs:decimal and xs:integer, it is
            guaranteed that if the type of $arg is an instance of type T then
            the result will also be an instance of T. The result may
            also be an instance of a type derived from one of these four by restriction. For example, if
            $arg is an instance of xs:decimal and $precision
            is less than one, then the result may
            be an instance of xs:integer.
 The first signature of this function produces the same result as the second signature
            with $precision=0.
For arguments of type xs:float and xs:double:
If the argument is NaN, positive or negative zero, or positive or
                  negative infinity, then the result is the same as the argument.
In all other cases, the argument is cast to xs:decimal using an
                  implementation of xs:decimal that imposes no limits on the number of digits that
                  can be represented. The function is applied to this xs:decimal value,
                  and the resulting xs:decimal is cast back to xs:float or
                     xs:double as appropriate to form the function result. If the
                  resulting xs:decimal value is zero, then positive or negative zero is
                  returned according to the sign of the original argument.
The expression fn:round-half-to-even(0.5) returns 0.0.
The expression fn:round-half-to-even(1.5) returns 2.0.
The expression fn:round-half-to-even(2.5) returns 2.0.
The expression fn:round-half-to-even(3.567812e+3, 2) returns 3567.81e0.
The expression fn:round-half-to-even(4.7564e-3, 2) returns 0.0e0.
The expression fn:round-half-to-even(35612.25, -2) returns 35600.
This function is typically used in financial applications where the argument is of type
               xs:decimal. For arguments of type xs:float and
               xs:double the results may be counter-intuitive. For example, consider
               round-half-to-even(xs:float(150.015), 2). The result is not 150.02 as
            might be expected, but 150.01. This is because the conversion of the
               xs:float value represented by the literal 150.015 to an
               xs:decimal produces the xs:decimal value 150.014999389...,
            which is closer to 150.01 than to 150.02.