Formattazione ed analisi dei numeri come stringhe

Per le conversioni tra tipi di dati stringa e numerici, è possibile fornire, nel parametro FORMAT della funzione CAST, un'espressione di formattazione facoltativa. Per le conversioni da tipi stringa, l'espressione di formattazione definisce il modo in cui analizzare la stringa di origine per soddisfare il tipo di dati di destinazione. Per le conversioni in tipi stringa, definisce il modo in cui i dati nell'espressione di origine devono essere formattati nella stringa di destinazione.

E' possibile specificare un'espressione FORMAT per le seguenti conversioni numeriche. La specifica di un'espressione FORMAT per le conversioni data/ora è descritta in Formattazione ed analisi di dateTimes come stringhe.
  • Da uno dei tipi di dati stringa (BIT, BLOB o CHARACTER) in:
    • DECIMAL
    • FLOAT
    • INTEGER
  • In uno dei tipi di dati stringa (BIT, BLOB o CHARACTER) da uno dei tipi di dati numerici elencati al punto precedente.
L'espressione di formattazione è composta da tre parti:
  1. Un subpattern che definisce i numeri positivi.
  2. Un subpattern facoltativo che definisce i numeri negativi. Se è definito un solo subpattern, i numeri negativi utilizzano il modello positivo preceduto dal simbolo meno.
  3. I parametri facoltativi groupsep e decsep.

SINTASSI

Parametri

chars

Una sequenza di zero o più caratteri. E' possibile utilizzare tutti i caratteri, eccetto i caratteri speciali elencati nella Tabella 1.

decsep

Uno o più caratteri da utilizzare come separatore tra la parte intera e la parte decimale di un numero (separatore decimale). Il separatore decimale predefinito è il punto (.).

digits

Una sequenza di uno o più dei token numerici (0 # - + , . ) elencati nella Tabella 1.

groupsep

Uno o più caratteri da utilizzare come separatore tra i cluster di integer, per rendere più leggibili i numeri elevati (separatore di gruppo). Per impostazione predefinita, le cifre non vengono raggruppate e non è definita la separazione dei gruppi.

Il raggruppamento viene eseguito in migliaia, ma può essere ridefinito dal modello o dalla locale. Esistono due misure di raggruppamento:
La misura di raggruppamento primaria
Utilizzata per le cifre integer meno importanti.
La misura di raggruppamento secondaria
Utilizzata per tutte le altre cifre integer.
Nella maggior parte dei casi, le misure di raggruppamento primaria e secondaria sono uguali, ma possono essere differenti. Ad esempio, se il modello utilizzato è #,##,##0, la misura di raggruppamento primaria è 3 e quella secondaria è 2. Il numero 123456789 diventa la stringa "12,34,56,789".

Se sono utilizzati più separatori di raggruppamento (come nell'esempio precedente), il separatore all'estrema destra definisce la misura primaria ed il penultimo separatore a destra definisce la misura secondaria.

subpattern

Il subpattern è formato da:
  1. Un prefisso facoltativo (chars)
  2. Un modello obbligatorio che rappresenta un numero
  3. Un modello facoltativo che rappresenta i posti decimali
  4. Un modello facoltativo che rappresenta un esponente (la potenza per cui viene elevato il numero precedente)
  5. Un suffisso facoltativo (chars)
Le parti 2, 3 e 4 del subpattern vengono definite dai token nella seguente tabella.
Tabella 1. Token per la definizione di un subpattern di formattazione utilizzato per le conversioni numeriche/stringa
Token Rappresenta
0 Qualsiasi cifra, incluso lo zero iniziale.
# Qualsiasi cifra, escluso lo zero iniziale. Vedere la spiegazione della differenza tra 0 e # riportata dopo questa tabella.
. Separatore decimale.
+ Prefisso dei numeri positivi.
- Prefisso dei numeri negativi.
, Separatore di raggruppamento.
E/e Separa il numero dall'esponente.
; Limite del subpattern.
' Apice, utilizzato per indicare caratteri speciali. Se nell'output è necessario visualizzare un apice, è necessario raddoppiarlo ('').
* Specificatore di riempimento. Il carattere che segue l'asterisco viene utilizzato per completare il numero in modo da raggiungere la lunghezza del modello del formato.

I caratteri # e 0 sono utilizzati per la sostituzione delle cifre; la differenza tra di essi è che il carattere # viene rimosso se non esiste alcun numero per sostituirlo. Ad esempio, 10 formattato con il modello #,##0.00 è "10.00", ma formattato con il modello 0,000.00 è "0,010.00".

Per specificare i caratteri di riempimento, utilizzare un asterisco. Quando è posizionato un asterisco in una delle due regioni chars (prefisso e suffisso), il carattere immediatamente successivo viene utilizzato per il riempimento dell'output. Il riempimento può essere specificato una sola volta. Ad esempio, il modello *x#,###,##0.00 applicato a 1234 ha come risultato "xxx1,234.00". Applicato a 1234567, ha come risultato "1,234,567.00".

Esempi di modelli di formattazione

Tabella 2. Esempi di modelli di formattazione, che illustrano l'output delle stringhe da input numerici di esempio
Modello Numero di input Stringa di output
+###,##0.00;-###,###,##0.00:groupsep='':decsep=, 123456789.123 "+123'456'789,12"
##0.00 1000000 "1000000.00"
##0.00 3.14159265 "3.14"
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ak05615_