Funzione format-number
Converte i numeri in stringhe. La conversione è il risultato della formattazione del numero specificato nel primo argomento (number) utilizzando il formato specificato nel secondo argomento (string) e applicando le regole definite nel formato decimale denominato nel terzo argomento facoltativo (string). Se il terzo argomento, il nome di formato decimale, viene omesso, verrà utilizzato il formato decimale predefinito. Questa funzione e l'elemento <xsl:decimal-format>
sono progettati per essere utilizzati assieme.
string format-number(number, string, string?)
Osservazioni
Il primo argomento specifica il valore di input. Ad esempio, il numero 5351.
Il secondo argomento specifica lo schema di formattazione. Ad esempio, la stringa "###.###,00".
Il terzo argomento è un nome di formato decimale facoltativo. In tal modo si consente l'utilizzo di qualsiasi carattere nella stringa dello schema di formattazione. Al carattere viene assegnato un ruolo nell'elemento <xsl:decimal-format>
. Un nome di formato decimale comune è european
e viene utilizzato per invertire il ruolo di virgola e punto rispetto all'impostazione predefinita.
Nello schema di formattazione vengono supportati i seguenti caratteri "."; ","; "#","%","0" e il carattere Unicode per mille (#x2030). Il carattere "#" viene utilizzato per descrivere integer. I caratteri "." e "," vengono utilizzati per descrivere la posizione e il tipo di punteggiatura. Il carattere "0" viene utilizzato per collocare uno 0 prima e dopo il carattere "." nei casi in cui, altrimenti, la posizione non mostrerebbe i numerali, ad esempio 00,3 o 3,00. Se si troncano cifre a destra del punto decimale, il numero viene arrotondato. Il numero a sinistra del punto decimale non viene mai troncato.
È necessario che siano presenti sia la stringa del valore di input sia quella dello schema di formattazione, altrimenti verrà generato un errore. Se non è possibile imporre il valore di input a un numero utilizzando le regole nella funzione number()
, la funzione format-number restituisce NaN. Se la stringa dello schema di formattazione non è una stringa di schema valida, la funzione restituisce il valore di input, immutato.
Il nome del formato decimale, se presente, rappresenta il nome di un formato decimale come specificato in un elemento <xsl:decimal-format>
. Il nome del formato decimale deve essere un nome completo. Se si specifica un nome di formato decimale nella funzione, è necessario che sia presente un elemento <xsl:decimal-format>
con lo stesso nome nel foglio di stile.
L'elemento <xsl:decimal-format>
può avere la priorità sullo schema di formattazione predefinito del numero. L'elemento <xsl:decimal-format>
segue gli schemi dell'identificatore di formattazione della classe java.text.DecimalFormat
. Per esempi dell'utilizzo della funzione format-number
con <xsl:decimal-format>
, vedere l'argomento Elemento <xsl:decimal-format>.
Esempi
Le seguenti righe XSLT restituiscono "24.535,20":
<xsl:decimal-format name="european" decimal-separator=',' grouping-separator='.' />
<xsl:value-of select="format-number(24535.2, '###.###,00', 'european')"/>
La seguente chiamata di funzione restituisce "5.351":
format-number(5351,"#,###")
La seguente chiamata di funzione restituisce "5351.00":
format-number(5351, "#.00")
La seguente chiamata di funzione restituisce "53.5100":
format-number(53.51, "#.0000")
La seguente chiamata di funzione restituisce "0053.5100":
format-number(53.51, "0000.0000")
La seguente chiamata di funzione restituisce "0053.51":
format-number(53.51, "0000.####")
La seguente chiamata di funzione restituisce "53.6":
format-number(53.56, "0.0")
Per un esempio completo dell'applicazione di questa funzione ai dati XML utilizzando un foglio di stile XSLT, vedere Esempio di <xsl:decimal-format>.
Vedere anche
Riferimento
Riferimenti dei tipi di dati XML
Elemento <xsl:decimal-format>