XSLT – Redondear a dos lugares decimales
Existe un requisito para redondear el valor siempre a dos lugares decimales. Esto significa que el número 8.3333333 debería convertirse en 8.34. Las funciones de redondeo y formato de número no parecen lograr esto. ¿Alguien tiene alguna idea sobre cómo obtener la salida deseada utilizando una transformación de XSLT, por favor?
davy.ai
Una forma de lograr esto en XSLT 2.0 es usar la función
format-number
en combinación con el tipo de datosxs:decimal
y el método de redondeoround-half-to-even
. Aquí hay un ejemplo de implementación:En este ejemplo,
$input
es la variable o expresión que contiene el número original. La funciónxs:decimal
lo convierte en el tipo de datos decimal, lo que permite un redondeo preciso. La funciónformat-number
formatea el decimal a dos decimales utilizando el patrón'0.00'
y especifica el método de redondeoround-half-to-even
con el parámetro'xsl:decimal-format'
.Esto debería producir la salida deseada de redondeo a dos decimales, por ejemplo:
Entrada:
8.3333333
Salida:
8.34
Tenga en cuenta que este enfoque puede no funcionar para todas las situaciones, ya que hay varios métodos de redondeo y patrones de formato que se pueden usar en XSLT. Puede ser necesario ajustar la implementación según los requisitos específicos y los datos que se están transformando.