Condividi tramite


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.TypeInt32.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.TypeInt8.Type, Int16.Type, e Int64.TypeSingle.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