Función format-number
Convierte números en cadenas.La conversión es el resultado de dar formato al número especificado en el primer argumento (number), utilizando el formato especificado en el segundo argumento (string) y aplicando las reglas definidas en el formato decimal mencionado en el tercer argumento opcional (cadena).Si se omite el tercer argumento, el nombre del formato decimal, se utilizará el formato decimal predeterminado.Esta función y el elemento <xsl:decimal-format> están diseñados para utilizarse conjuntamente.
string format-number(number, string, string?)
Comentarios
El primer argumento especifica el input value.Por ejemplo, el número 5351.
El segundo argumento especifica el format pattern.Por ejemplo, la cadena '###.###,00'.
El tercer argumento es un decimal format name opcional.Esto permite utilizar cualquier carácter en la cadena de modelo de formato; el carácter se asigna a un rol del elemento <xsl:decimal-format>.Un nombre de formato decimal habitual es european, que se utiliza para invertir el rol de punto y coma del valor predeterminado.
En el modelo de formato se admiten los siguientes caracteres "."; ","; "#","%","0", además del carácter per-mille Unicode (#x2030).El carácter "#" se utiliza para describir números enteros.Los caracteres "." y "," se utilizan para describir la ubicación y el tipo de puntuación.El carácter "0" se utiliza para situar un 0 antes y después del carácter "," cuando la posición podría mostrar, de lo contrario, que no existe número, como 00,3 o 3,00.Al truncar los números que están a la derecha de la coma de decimales, se redondea el número.El número que se encuentra a la izquierda de la coma nunca se trunca.
El valor de entrada y la cadena de modelo de formato deben estar presentes o se producirá un error.Si no es posible convertir el valor de entrada en un número mediante las reglas de la función number(), la función format-number devuelve NaN.Si la cadena de modelo de formato no es una cadena de modelo válida, la función devuelve el valor de entrada, sin cambios.
El nombre del formato decimal, si lo hay, representa el nombre de un formato decimal tal y como se especifica en un elemento <xsl:decimal-format>.El nombre del formato decimal debe ser un nombre completo.Si especifica un nombre de formato decimal en la función, debe haber un elemento <xsl:decimal-format> en la hoja de estilos con el mismo nombre.
El elemento <xsl:decimal-format> puede invalidar el modelo de formato de números predeterminado.El elemento <xsl:decimal-format> sigue los modelos del especificador de formato de la clase java.text.DecimalFormat.Para obtener ejemplos de cómo utilizar la función format-number con <xsl:decimal-format>, vea Elemento <xsl:decimal-format>.
Ejemplos
Las siguientes líneas XSLT devuelven "24.535,20":
<xsl:decimal-format name="european" decimal-separator=',' grouping-separator='.' />
<xsl:value-of select="format-number(24535.2, '###.###,00', 'european')"/>
La siguiente llamada de función devuelve "5.351":
format-number(5351,"#,###")
La siguiente llamada de función devuelve "5351.00":
format-number(5351, "#.00")
La siguiente llamada de función devuelve "53,5100":
format-number(53.51, "#.0000")
La siguiente llamada de función devuelve "0053.5100":
format-number(53.51, "0000.0000")
La siguiente llamada de función devuelve "0053.51":
format-number(53.51, "0000.####")
La siguiente llamada de función devuelve "53,6":
format-number(53.56, "0.0")
Para obtener un ejemplo completo de cómo aplicar esta función a datos XML mediante una hoja de estilos XSLT, vea Ejemplo de <xsl:decimal-format>.