round-half-to-even

Rounds a numeric value, rounding even halfs to the nearest even number

Description

The fn:round-half-to-even function rounds a numeric value, rounding even halfs to the nearest even number. This type of rounding is used in financial applications so that the sum of a column of rounded numbers comes closer to the sum of the same unrounded numbers.

The returned value is rounded to the number of decimal places indicated by $precision. For example, if the precision specified is 2, the function rounds 594.3271 to 594.33. If the precision is 0, the number is rounded to an integer. Specifying a negative precision results in the number being rounded to the left of the decimal point. For example, if $precision is -2, the function rounds 594.3271 to 600. If $precision is omitted, it defaults to 0.

If the argument is exactly half way between two values, it is rounded to whichever adjacent value is even.

The result type depends the numeric type of the argument. If $arg is untyped, it is cast to xs:double.

Parameters

Description

arg:numeric()

the number to round

precision:integer()

the precision to round it to

Examples

XPath

Results

round-half-to-even(5.5)

6

round-half-to-even(6.5)

6

round-half-to-even(9372.253, 2)

9372.25

round-half-to-even(9372.253, 0)

9372

round-half-to-even(9372.253, -3)

9000

See Also