Stringhe di formato numerico standard
Le stringhe di formato numerico standard vengono usate per formattare tipi numerici comuni. Una stringa di formato numerico standard usa il formato [format specifier][precision specifier]
, dove:
L'identificatore di formato è un singolo carattere alfabetico che specifica il tipo di formato numerico, ad esempio valuta o percentuale. Le stringhe di formato numerico contenenti più caratteri alfabetici, inclusi gli spazi, vengono interpretate come stringhe di formato numerico personalizzate. Per altre informazioni, vedere Stringhe di formato numerico personalizzato.
L'identificatore di precisione è un numero intero facoltativo che influisce sul numero di cifre nella stringa risultante. L'identificatore di precisione controlla il numero di cifre nella rappresentazione di stringa di un numero.
Quando l'identificatore di precisione controlla il numero di cifre frazionarie nella stringa di risultato, la stringa di risultato riflette un numero arrotondato a un risultato rappresentabile più vicino al risultato infinitamente preciso.
Nota
L'identificatore di precisione determina il numero di cifre nella stringa risultato. Per riempire una stringa di risultato con spazi iniziali o finali o altri caratteri (ad esempio 0), usare le funzioni Text.PadStart e Text.PadEnd e usare la lunghezza complessiva
count
in queste funzioni per riempire la stringa di risultato.
Le stringhe di formato numerico standard sono supportate dalla funzione Number.ToText.
Identificatori di formato standard
Nella tabella seguente vengono descritti gli identificatori di formato numerico standard e viene visualizzato l'output di esempio prodotto da ogni identificatore di formato. Per altre informazioni sull'uso di stringhe di formato numerico standard, vedere la sezione Esempio di codice per un'illustrazione completa dell'uso.
Nota
Il risultato di una stringa formattata per impostazioni cultura specifiche potrebbe differire dagli esempi seguenti. Le impostazioni del sistema operativo, le impostazioni utente, le variabili di ambiente e altre impostazioni nel sistema usato possono influire sul formato.
Identificatore di formato | Nome | Descrizione | Esempi |
---|---|---|---|
"C" o "c" | Valuta | Risultato: un valore di valuta. Supportato da: tutti i tipi numerici. Identificatore di precisione: numero di cifre decimali. Identificatore di precisione predefinito: definito dalle impostazioni cultura. Altre informazioni: Identificatore di formato di valuta ("C"). |
123.456 ("C", en-US) -> \$123,46 123.456 ("C", fr-FR) -> 123.46 € 123.456 ("C", ja-JP) -> ^123 -123.456 ("C3", en-US) -> (\$123,456) -123.456 ("C3", fr-FR) -> -123.456 € -123.456 ("C3", ja-JP) -> -^123.456 |
"D" o "d" | Decimale | Risultato: cifre intere con segno negativo facoltativo. Supportato da: solo tipi integrali. Identificatore di precisione: numero minimo di cifre. Identificatore di precisione predefinito: numero minimo di cifre richieste. Altre informazioni: Identificatore di formato decimale ("D"). |
1234 ("D") -> 1234 -1234 ("D6") -> -001234 |
"E" o "e" | Esponenziale (scientifico) | Risultato: notazione esponenziale. Supportato da: tutti i tipi numerici. Identificatore di precisione: numero di cifre decimali. Identificatore di precisione predefinito: 6. Altre informazioni: Identificatore di formato esponenziale ("E"). |
1052.0329112756 ("E", en-US) -> 1.052033E+003 1052.0329112756 ("e", fr-FR) -> 1.052033e+003 -1052.0329112756 ("e2", en-US) -> -1.05e+003 -1052.0329112756 ("E2", fr-FR) -> -1.05E+003 |
"F" o "f" | A virgola fissa | Risultato: cifre integrali e decimali con segno negativo facoltativo. Supportato da: tutti i tipi numerici. Identificatore di precisione: numero di cifre decimali. Identificatore di precisione predefinito: definito dalle impostazioni cultura. Altre informazioni: Identificatore di formato a virgola fissa ("F"). |
1234.567 ("F", en-US) -> 1234.57 1234.567 ("F", de-DE) -> 1234.57 1234 ("F1", en-US) -> 1234.0 1234 ("F1", de-DE) -> 1234.0 -1234.56 ("F4", en-US) - -> 1234.5600 -1234.56 ("F4", de-DE) - -> 1234.5600 |
"G" o "g" | Generali | Risultato: la più compatta tra la notazione a virgola fissa e quella scientifica. Supportato da: tutti i tipi numerici. Identificatore di precisione: numero di cifre significative. Identificatore di precisione predefinito: dipende dal tipo numerico. Altre informazioni: Identificatore di formato generale ("G"). |
-123.456 ("G", en-US) -> -123.456 -123.456 ("G", sv-SE) - -> 123.456 123.4546 ("G4", en-US) -> 123.5 123.4546 ("G4", sv-SE) -> 123,5 -1.234567890e-25 ("G", en-US) - -> 1.23456789E-25 -1.234567890e-25 ("G", sv-SE) -> -1.23456789E-25 |
"N" o "n" | Numero | Risultato: cifre integrali e decimali, separatori di gruppi e un separatore decimale con segno negativo facoltativo. Supportato da: tutti i tipi numerici. Identificatore di precisione: numero desiderato di posizioni decimali. Identificatore di precisione predefinito: definito dalle impostazioni cultura. Altre informazioni: Identificatore di formato numerico ("N"). |
1234.567 ("N", en-US) -> 1.234.57 1234.567 ("N", ru-UR) -> 1 234.57 1234 ("N1", en-US) -> 1.234.0 1234 ("N1", ru-UR) -> 1 234.0 -1234.56 ("N3", en-US) -> -1.234.560 -1234.56 ("N3", ru-RU) -> -1 234.560 |
"P" o "p" | Percentuale | Risultato: numero moltiplicato per 100 e visualizzato con un simbolo di percentuale. Supportato da: tutti i tipi numerici. Identificatore di precisione: numero desiderato di posizioni decimali. Identificatore di precisione predefinito: definito dalle impostazioni cultura. Altre informazioni: Identificatore di formato percentuale ("P"). |
1 ("P", en-US) -> 100,00 % 1 ("P", fr-FR) -> 100.00 % -0.39678 ("P1", en-US) -> -39,7 % -0.39678 ("P1", fr-FR) -> -39,7 % |
"X" o "x" | Esadecimale | Risultato: stringa esadecimale. Supportato da: solo tipi integrali. Identificatore di precisione: numero di cifre nella stringa di risultato. Altre informazioni: Identificatore di formato esadecimale ("X"). |
255 ("X") -> FF -1 ("x") -> ff 255 ("x4") -> 00ff -1 ("X4") -> 00FF |
Qualsiasi altro carattere singolo | Identificatore sconosciuto | Risultato: genera un errore di espressione in fase di esecuzione. |
Usare stringhe di formato numerico standard
Una stringa di formato numerico standard può essere usata per definire la formattazione di un valore numerico. Può essere passato al parametro Number.ToTextformat
. Nell'esempio seguente un valore numerico viene formattato come stringa di valuta nelle impostazioni cultura correnti (in questo caso, en-US).
Number.ToText(123.456, "C2")
// Displays $123.46
Facoltativamente, è possibile specificare un argomento count
nelle funzioni Text.PadStart e Text.PadEnd per specificare la larghezza del campo numerico e se il relativo valore è allineato a destra o a sinistra. Ad esempio, l'esempio seguente allinea a sinistra un valore di valuta in un campo di 28 caratteri e allinea a destra un valore di valuta in un campo a 14 caratteri (quando si usa un tipo di carattere monospaced).
let
amounts = {16305.32, 18794.16},
result = Text.Format(" Beginning Balance Ending Balance#(cr,lf) #{0}#{1}",
{
Text.PadEnd(Number.ToText(amounts{0}, "C2"), 28),
Text.PadStart(Number.ToText(amounts{1}, "C2"), 14)
})
in
result
// Displays:
// Beginning Balance Ending Balance
// $16,305.32 $18,794.16
Nelle sezioni seguenti vengono fornite informazioni dettagliate su ognuna delle stringhe di formato numerico standard.
Identificatore di formato valuta (C)
L'identificatore di formato di valuta ("C") consente di convertire un numero in una stringa che rappresenta un importo di valuta. L'identificatore di precisione indica il numero desiderato di posizioni decimali nella stringa di risultato. Se l'identificatore di precisione viene omesso, il numero predefinito di posizioni decimali da utilizzare nei valori di valuta è 2.
Se il valore da formattare contiene un numero di posizioni decimali maggiore del numero specificato o predefinito, il valore frazionario viene arrotondato nella stringa di risultato. Se il valore a destra del numero di posizioni decimali specificate è maggiore o uguale a 5, l'ultima cifra nella stringa di risultato viene arrotondata per eccesso.
La stringa di risultato è influenzata dalle informazioni di formattazione delle impostazioni cultura correnti.
Nell'esempio seguente viene formattato un valore con l'identificatore di formato valuta:
let
Source =
{
Number.ToText(12345.6789, "C"),
Number.ToText(12345.6789, "C3"),
Number.ToText(12345.6789, "C3", "da-DK")
}
in
Source
// The example displays the following list on a system whose
// current culture is English (United States):
// $12,345.68
// $12,345.679
// 12.345,679 kr.
Identificatore di formato decimale (D)
L'identificatore di formato decimale ("D") consente di convertire un numero in una stringa di cifre decimali, da 0 a 9, preceduta da un segno meno se il numero è negativo. Questo formato è supportato solo per i tipi integrali.
L'identificatore di precisione indica il numero minimo di cifre che si vogliono visualizzare nella stringa risultante. Se necessario, alla sinistra del numero verranno aggiunti degli zeri in modo da raggiungere il numero di cifre specificato dall'identificatore di precisione. Se non viene specificato alcun identificatore di precisione, il valore predefinito corrisponde al valore minimo richiesto per rappresentare il numero intero senza zeri iniziali.
La stringa di risultato è influenzata dalle informazioni di formattazione delle impostazioni cultura correnti.
Nell'esempio seguente viene formattato un valore con l'identificatore di formato decimale.
let
Source =
{
Number.ToText(12345, "D"),
// Displays 12345
Number.ToText(12345, "D8"),
// Displays 00012345
Number.ToText(-12345, "D"),
// Displays -12345
Number.ToText(-12345, "D8")
// Displays -00012345
}
in
Source
Identificatore di formato esponenziale (E)
L'identificatore di formato esponenziale ("E") consente di convertire un numero in una stringa nel formato "-d.ddd…E+ddd" o "-d.ddd…e+ddd", dove ciascuna "d" indica una cifra da 0 a 9. Se il numero è negativo, la stringa inizierà con un segno meno. Il separatore decimale è sempre preceduto esattamente da una cifra.
L'identificatore di precisione indica il numero di cifre desiderato dopo il separatore decimale. Se l'identificatore di precisione viene omesso, verrà usato il numero predefinito di sei cifre dopo il separatore decimale.
Il fatto che per l'identificatore di formato venga usata una lettera maiuscola o minuscola indica, rispettivamente, se l'esponente debba essere preceduto dal prefisso "E" o "e". L'esponente consiste sempre in un segno più o meno e in un minimo di tre cifre. Se necessario, vengono aggiunti all'esponente degli zeri in modo da raggiungere tale numero di cifre.
La stringa di risultato è influenzata dalle informazioni di formattazione delle impostazioni cultura correnti.
L'esempio seguente formatta un valore con l'identificatore di formato esponenziale:
let
Source =
{
Number.ToText(12345.6789, "E", ""),
// Displays 1.234568E+004
Number.ToText(12345.6789, "E10", ""),
// Displays 1.2345678900E+004
Number.ToText(12345.6789, "e4", ""),
// 1.2346e+004
Number.ToText(12345.6789, "E", "fr-FR")
// Displays 1,234568E+004
}
in
Source
Nota
Il valore di testo vuoto ("") nell'ultimo parametro di Number.ToText nell'esempio precedente fa riferimento alle impostazioni cultura invarianti.
Identificatore di formato a virgola fissa (F)
L'identificatore di formato a virgola fissa ("F") consente di convertire un numero in una stringa nel formato "-ddd.ddd…", dove ogni "d" indica una cifra da 0 a 9. Se il numero è negativo, la stringa inizierà con un segno meno.
L'identificatore di precisione indica il numero di posizioni decimali desiderato. Se l'identificatore di precisione viene omesso, il numero predefinito di posizioni decimali da utilizzare nei valori numerici è 2.
La stringa di risultato è influenzata dalle informazioni di formattazione delle impostazioni cultura correnti.
L'esempio seguente formatta un valore double e un valore intero con l'identificatore di formato a virgola fissa:
let
Source =
{
Number.ToText(17843, "F", ""),
// Displays 17843.00
Number.ToText(-29541, "F3", ""),
// Displays -29541.000
Number.ToText(18934.1879, "F", ""),
// Displays 18934.19
Number.ToText(18934.1879, "F0", ""),
// Displays 18934
Number.ToText(-1898300.1987, "F1", ""),
// Displays -1898300.2
Number.ToText(-1898300.1987, "F3", "es-ES")
// Displays -1898300,199
}
in
Source
Identificatore di formato generale (G)
L'identificatore di formato generale ("G") consente di convertire un numero nel formato più compatto tra la notazione scientifica e quella a virgola fissa, a seconda del tipo di numero e della presenza di un identificatore di precisione. L'identificatore di precisione definisce il numero massimo di cifre significative che possono essere visualizzate nella stringa di risultato. Se l'identificatore di precisione viene omesso o è uguale a zero, il tipo di numero determina la precisione predefinita, come indicato nella tabella seguente.
Tipo numerico | Precisione predefinita |
---|---|
Byte.Type oppure Int8.Type |
3 cifre |
Int16.Type |
5 cifre |
Int32.Type |
10 cifre |
Int64.Type |
19 cifre |
Single.Type |
9 cifre |
Double.Type |
17 cifre |
Decimal.Type |
15 cifre |
La notazione a virgola fissa verrà usata se l'esponente ottenuto esprimendo il numero con la notazione scientifica risulta maggiore di -5 e minore dell'identificatore di precisione. In caso contrario, verrà usata la notazione scientifica. Il risultato contiene un separatore decimale, se richiesto, e gli zeri finali dopo la virgola decimale vengono omessi. Se l'identificatore di precisione è presente e il numero di cifre significative nel risultato è superiore alla precisione specificata, le cifre finali in eccesso vengono rimosse mediante arrotondamento.
Se, tuttavia, il numero è di tipo Decimal.Type
e l'identificatore di precisione viene omesso, viene usata sempre la notazione a virgola fissa e gli zeri finali vengono mantenuti.
Se viene usata la notazione scientifica, l'esponente nel risultato sarà preceduto da un prefisso "E" se l'identificatore di formato è "G" o da un prefisso "e" se l'identificatore di formato è "g". L'esponente contiene un minimo di due cifre. Questo aspetto è diverso rispetto al formato per la notazione scientifica, prodotto dall'identificatore di formato esponenziale, che include un minimo di tre cifre nell'esponente.
La stringa di risultato è influenzata dalle informazioni di formattazione delle impostazioni cultura correnti.
Nell'esempio seguente vengono formattati valori a virgola mobile diversi con l'identificatore di formato generale:
let
Source =
{
Number.ToText(12345.6789, "G", ""),
// Displays 12345.6789
Number.ToText(12345.6789, "G", "fr-FR"),
// Displays 12345,6789
Number.ToText(12345.6789, "G7", ""),
// Displays 12345.68
Number.ToText(.0000023, "G", ""),
// Displays 2.3E-06
Number.ToText(.0000023, "G", "fr-FR"),
// Displays 2,3E-06
Number.ToText(.0023, "G", ""),
// Displays 0.0023
Number.ToText(1234, "G2", ""),
// Displays 1.2E+03
Number.ToText(Number.PI, "G5", "")
// Displays 3.1416
}
in
Source
Identificatore di formato numerico (N)
L'identificatore di formato numerico ("N") converte un numero in una stringa in formato "-c.ccc.ccc,ccc…", dove "-" indica un simbolo di numero negativo, se richiesto, "c" indica una cifra (0-9), "." indica il separatore delle migliaia tra gruppi numerici e "," indica il simbolo di separatore decimale. L'identificatore di precisione indica il numero di cifre desiderato dopo il separatore decimale. Se l'identificatore di precisione viene omesso, il numero di posizioni decimali viene definito dalle impostazioni cultura correnti.
La stringa di risultato è influenzata dalle informazioni di formattazione delle impostazioni cultura correnti.
Nell'esempio seguente vengono formattati valori a virgola mobile diversi con l'identificatore di formato numerico:
let
Source =
{
Number.ToText(-12445.6789, "N", ""),
// Displays -12,445.68
Number.ToText(-12445.6789, "N1", "sv-SE"),
// Displays -12 445,7
Number.ToText(123456789, "N1", "")
// Displays 123,456,789.0
}
in
Source
Identificatore di formato percentuale (P)
L'identificatore di formato percentuale ("P") moltiplica un numero per 100 e lo converte in una stringa che rappresenta una percentuale. L'identificatore di precisione indica il numero di posizioni decimali desiderato. Se l'identificatore di precisione viene omesso, viene utilizzata la precisione numerica predefinita fornita dalle impostazioni cultura correnti.
L'esempio seguente formatta i valori a virgola mobile con l'identificatore di formato percentuale:
let
Source =
{
Number.ToText(.2468013, "P", ""),
// Displays 24.68 %
Number.ToText(.2468013, "P", "hr-HR"),
// Displays 24,68 %
Number.ToText(.2468013, "P1", "en-US")
// Displays 24.7%
}
in
Source
Identificatore di formato esadecimale (X)
L'identificatore di formato esadecimale ("X") consente di convertire un numero in una stringa di cifre esadecimali. Il fatto che per l'identificatore di formato venga usata una lettera maiuscola o minuscola indica, rispettivamente, se usare caratteri maiuscoli o minuscoli per le cifre esadecimali maggiori di 9. usare ad esempio "X" per produrre la stringa "ABCDEF" e "x" per produrre "abcdef". Questo formato è supportato solo per i tipi integrali.
L'identificatore di precisione indica il numero minimo di cifre che si vogliono visualizzare nella stringa risultante. Se necessario, alla sinistra del numero verranno aggiunti degli zeri in modo da raggiungere il numero di cifre specificato dall'identificatore di precisione.
La stringa di risultato non è influenzata dalle informazioni di formattazione delle impostazioni cultura correnti.
Nell'esempio seguente vengono formattati valori con l'identificatore di formato esadecimale.
let
Source =
{
Number.ToText(0x2045e, "x"),
// Displays 2045e
Number.ToText(0x2045e, "X"),
// Displays 2045E
Number.ToText(0x2045e, "X8"),
// Displays 0002045E
Number.ToText(123456789, "X"),
// Displays 75BCD15
Number.ToText(123456789, "X2")
// Displays 75BCD15
}
in
Source
Note
Questa sezione contiene informazioni aggiuntive sull'uso di stringhe di formato numerico standard.
Tipi numerici integrali e a virgola mobile
Alcune descrizioni di identificatori di formato numerico standard fanno riferimento a tipi numerici integrali o a virgola mobile. I tipi numerici integrali sono Byte.Type
, Int8.Type
, Int16.Type
Int32.Type
, eInt64.Type
. I tipi numerici a virgola mobile sono Decimal.Type
, Single.Type
e Double.Type
.
Valori infiniti a virgola mobile e NaN
Indipendentemente dalla stringa di formato, se il valore di un Decimal.Type
, Single.Type
o Double.Type
tipo a virgola mobile è infinito positivo, infinito negativo o non un numero (NaN), la stringa formattata è il valore delle rispettive costanti Number.PositiveInfinity, Number.NegativeInfinityo Number.NaN specificate dalle impostazioni cultura attualmente applicabili.
Esempio di codice
Nell'esempio seguente viene formattato un valore numerico a virgola mobile e un valore numerico integrale usando le impostazioni cultura en-US e tutti gli identificatori di formato numerico standard. In questo esempio vengono usati due tipi numerici specifici (Double.Type
e ), ma si ottengono risultati simili per qualsiasi altro tipo di base numerico (Int32.Type
, Byte.Type
, Decimal.Type
Int8.Type
, Int16.Type
, e Int64.Type
Single.Type
).
let
// Display text representations of numbers for en-US culture
culture = "en-US",
// Output floating point values
floating = Double.From(10761.937554),
#"Floating results" =
{
Text.Format("C: #{0}", {Number.ToText(floating, "C", culture)}), // Displays "C: $10,761.94"
Text.Format("E: #{0}", {Number.ToText(floating, "E03", culture)}), // Displays "E: 1.076E+004"
Text.Format("F: #{0}", {Number.ToText(floating, "F04", culture)}), // Displays "F: 10761.9376"
Text.Format("G: #{0}", {Number.ToText(floating, "G", culture)}), // Displays "G: 10761.937554"
Text.Format("N: #{0}", {Number.ToText(floating, "N03", culture)}), // Displays "N: 10,761.938"
Text.Format("P: #{0}", {Number.ToText(floating/10000, "P02", culture)}) // Displays "P: 107.62%"
},
// Output integral values
integral = Int32.From(8395),
#"Integral results" =
{
Text.Format("C: #{0}", {Number.ToText(integral, "C", culture)}), // Displays "C: $8,395.00"
Text.Format("D: #{0}", {Number.ToText(integral, "D6", culture)}), // Displays "D: 008395"
Text.Format("E: #{0}", {Number.ToText(integral, "E03", culture)}), // Displays "E: 8.395E+003"
Text.Format("F: #{0}", {Number.ToText(integral, "F01", culture)}), // Displays "F: 8395.0"
Text.Format("G: #{0}", {Number.ToText(integral, "G", culture)}), // Displays "G: 8395"
Text.Format("N: #{0}", {Number.ToText(integral, "N01", culture)}), // Displays "N: 8,395.0"
Text.Format("P: #{0}", {Number.ToText(integral/10000, "P02", culture)}), // Displays "P: 83.95%"
Text.Format("X: 0x#{0}", {Number.ToText(integral, "X", culture)}) // Displays "X: 0x20CB"
},
results = #"Floating results" & #"Integral results"
in
results