round (función de XQuery)
Devuelve el número que no tiene una parte fraccionaria más próxima al valor del argumento. Si hay más de un número con esta característica, se devuelve el más próximo al infinito positivo. Por ejemplo:
Si el argumento es 2,5, round() devuelve 3.
Si el argumento es 2,4999, round() devuelve 2.
Si el argumento es -2,5, round() devuelve -2.
Si el argumento es una secuencia vacía, round() devuelve la secuencia vacía.
Sintaxis
fn:round ( $arg as numeric?) as numeric?
Argumentos
- $arg
Número al que se aplica la función.
Comentarios
Si el tipo de $arg es uno de los tres tipos numéricos base (xs:float, xs:double o xs:decimal), el tipo de valor devuelto es igual al tipo de $arg. Si el tipo de $arg es un tipo derivado de uno de los tipos numéricos, el tipo de valor devuelto es el tipo numérico base.
Si la entrada de la función fn:floor, fn:ceiling o fn:round es xdt:untypedAtomic, es decir, datos sin tipo, se convierte implícitamente a xs:double.
Cualquier otro tipo genera un error estático.
Ejemplos
En este tema se ofrecen ejemplos de consultas XQuery con instancias XML almacenadas en varias columnas de tipo xml en la base de datos AdventureWorks.
Puede usar el ejemplo funcional de función ceiling (XQuery) para la función round() de XQuery. Todo lo que tiene que hacer es sustituir la función ceiling() de la consulta por la función round().
Limitaciones de la implementación
Éstas son las limitaciones:
La función round() asigna los valores enteros a xs:decimal.
La función round() asigna los valores xs:double y xs:float entre -0.5e0 y -0e0 a 0e0 en lugar de a -0e0.