Zdieľať cez


Reťazce štandardného číselného formátu

Reťazce štandardného číselného formátu sa používajú na formátovanie bežných číselných typov. Reťazec štandardného číselného formátu má tvar [format specifier][precision specifier], kde:

  • Špecifikácia formátu je jeden abecedný znak, ktorý určuje typ číselného formátu, napríklad menu alebo percento. Akýkoľvek reťazec číselného formátu, ktorý obsahuje viac ako jeden znak abecedy vrátane prázdneho priestoru, sa interpretuje ako vlastný reťazec číselného formátu. Ďalšie informácie nájdete v časti Vlastné reťazce číselného formátu.

  • Špecifikácia presnosti je voliteľné celé číslo, ktoré ovplyvňuje počet číslic vo výslednom reťazci. Špecifikácia presnosti určuje počet číslic v reprezentácii reťazca čísla.

    Keď špecifikácia presnosti určuje počet desatinných číslic vo výslednom reťazci, výsledný reťazec odráža číslo, ktoré sa zaokrúhli na predstavujúci výsledok, ktorý je najbližšie k nekonečne presnému výsledku.

    Poznámka

    Špecifikácia presnosti určuje počet číslic vo výslednom reťazci. Ak chcete vložiť výsledný reťazec s medzerami na konci alebo s medzerami na konci alebo inými znakmi (napríklad 0), použite funkcie Text.PadStart a Text.PadEnd a na vyplnenie výsledného reťazca použite count celkovej dĺžky v týchto funkciách.

Funkcie Number.ToText podporuje reťazce štandardného číselného formátu.

Špecifikátory štandardného formátu

Nasledujúca tabuľka popisuje špecifikátory štandardného číselného formátu a zobrazuje ukážkový výstup vytvorený jednotlivými špecifikáciami formátu. Prejdite do časti Poznámky, kde nájdete ďalšie informácie o používaní reťazcov štandardného číselného formátu a časti Príklad kódu, kde nájdete komplexnú ilustráciu ich použitia.

Poznámka

Výsledok formátovaného reťazca pre konkrétnu jazykovú verziu sa môže líšiť od nasledujúcich príkladov. Formát môžu ovplyvniť nastavenia operačného systému, používateľské nastavenia, premenné prostredia a ďalšie nastavenia v systéme, ktorý používate.

Špecifikátor formátu Názov Popis Príklady
"C" alebo "c" Mena Výsledok: Hodnota meny.

Podporované: Všetky číselné typy.

Špecifikácia presnosti: Počet desatinných miest.

Predvolené špecifikátory presnosti: Definované jazykovou verziou.

Ďalšie informácie: Špecifikácia formátu meny (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" alebo "d" Decimal Výsledok: Celočíselné číslice s voliteľným záporným znamienkom.

Podporované: Len pri typoch integrálu.

Špecifikácia presnosti: Minimálny počet číslic.

Predvolený špecifikácia presnosti: Minimálny počet požadovaných číslic.

Ďalšie informácie: Špecifikácia formátu Decimal("D").
1234 ("D")
–> 1234

-1234 ("D6")
–> -001234
"E" alebo "e" Exponenciálne (vedecké) Výsledok: Exponenciálny zápis.

Podporované: Všetky číselné typy.

Špecifikácia presnosti: Počet desatinných miest.

Predvolený špecifikácia presnosti: 6.

Ďalšie informácie: Špecifikácia formátu Exponenciálny ("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" alebo "f" Fixný bod Výsledok: Celé a desatinné čísla s voliteľným záporným znamienkom.

Podporované: Všetky číselné typy.

Špecifikácia presnosti: Počet desatinných miest.

Predvolené špecifikátory presnosti: Definované jazykovou verziou.

Ďalšie informácie: Špecifikácia formátu s pevným bodom (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" alebo "g" Všeobecné Výsledok: Kompaktnejší zápis pevných desatinných bodov alebo vedecký zápis.

Podporované: Všetky číselné typy.

Špecifikácia presnosti: Počet významných číslic.

Predvolené špecifikátory presnosti: Závisí od číselného typu.

Ďalšie informácie: Špecifikácia formátu Všeobecné ("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" alebo "n" Číslo Výsledok: Celé a desatinné čísla, oddeľovače skupín a oddeľovač desatinných miest s voliteľným záporným znamienkom.

Podporované: Všetky číselné typy.

Špecifikácia presnosti: Požadovaný počet desatinných miest.

Predvolené špecifikátory presnosti: Definované jazykovou verziou.

Ďalšie informácie: Špecifikácia formátu čísla (N).
1234.567 ("N", en-US)
-> 1 234,57

1234.567 ("N", ru-RU)
-> 1 234,57

1234 ("N1", en-US)
-> 1,234.0

1234 ("N1", ru-RU)
-> 1 234,0

-1234.56 ("N3", en-US)
-> -1 234,560

-1234.56 ("N3", ru-RU)
-> -1 234 560
"P" alebo "p" Percento Výsledok: Číslo vynásobené číslom 100 a zobrazené so symbolom percenta.

Podporované: Všetky číselné typy.

Špecifikácia presnosti: Požadovaný počet desatinných miest.

Predvolené špecifikátory presnosti: Definované jazykovou verziou.

Ďalšie informácie: Špecifikácia formátu percenta (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" alebo "x" Šestnástkový Výsledok: šestnástkový reťazec.

Podporované: Len pri typoch integrálu.

Špecifikácia presnosti: Počet číslic vo výslednom reťazci.

Ďalšie informácie: Špecifikácia formátu šestnástkového ("X").
255 ("X")
–> FF

-1 ("x")
–> ff

255 ("x4")
–> 00ff

-1 ("X4")
–> 00FF
Ľubovoľný iný znak s jedným znakom Neznámy špecifikátor Výsledok: Vyhodí chybu výrazu v čase spustenia.

Používanie reťazcov štandardného číselného formátu

Na definovanie formátovania číselnej hodnoty možno použiť reťazec štandardného číselného formátu. Môže sa odovzdať do parametra Number.ToTextformat. Nasledujúci príklad formátuje v aktuálnej jazykovej verzii číselnú hodnotu ako reťazec meny (v tomto prípade jazykovú verziu en-US).

Number.ToText(123.456, "C2")
// Displays $123.46

Voliteľne môžete do funkcií Text.PadStart a Text.PadEnd zadať argument count, ktorý určí šírku číselného poľa a to, či je jeho hodnota zarovnaná doprava alebo doľava. Nasledujúca ukážka zarovná hodnotu meny napríklad s 28-znakovým poľom a pravé pole zarovná hodnotu meny v 14-znakovom poli (pri použití písma v 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

V nasledujúcich častiach nájdete podrobné informácie o reťazcoch štandardného číselného formátu.

Špecifikátor formátu meny (C)

Špecifikátor formátu C (alebo mena) konvertuje číslo na reťazec, ktorý predstavuje čiastku meny. Špecifikácia presnosti udáva požadovaný počet desatinných miest vo výslednom reťazci. Ak je špecifikácia presnosti vynechaná, predvolený počet desatinných miest, ktoré sa majú použiť v hodnotách meny, je 2.

Ak má hodnota, ktorá má byť formátovaná, viac než zadaný alebo predvolený počet desatinných miest, zlomková hodnota sa zaokrúhli vo výslednom reťazci. Ak je hodnota napravo od počtu zadaných desatinných miest 5 alebo väčšia, posledná číslica vo výslednom reťazci sa zaokrúhli od nuly.

Výsledný reťazec je ovplyvnený informáciami o formátovaní aktuálnej jazykovej verzie.

Nasledujúci príklad formátuje hodnotu pomocou špecifikátoru formátu meny:

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.

Špecifikátor formátu desatinných miest (D)

Špecifikátor formátu D (alebo desatinné číslo) konvertuje číslo na reťazec desatinných číslic (0 – 9), ktorého predponou je znamienko mínus, ak je číslo záporné. Tento formát je podporovaný iba pre celé typy.

Špecifikácia presnosti udáva minimálny počet číslic požadovaných vo výslednom reťazci. Ak sa to vyžaduje, číslo je vyplnené nulami naľavo, aby sa získal počet číslic zadaný špecifikáciou presnosti. Ak nie je zadaný žiadny špecifikácia presnosti, predvolená hodnota je minimálna hodnota vyžadovaná na vyjadrenie celého čísla bez úvodných núl.

Výsledný reťazec je ovplyvnený informáciami o formátovaní aktuálnej jazykovej verzie.

V nasledujúcom príklade sa naformátuje hodnota s špecifikáciou formátu desatinných miest.

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 

Špecifikátor exponenciálneho formátu (E)

Špecifikátor exponenciálneho formátu ("E") konvertuje číslo na reťazec formulára "-d.ddd... E+ddd" alebo "-d.ddd... e+ddd", kde každé "d" označuje číslicu (0 – 9). Reťazec sa začína znamienkom mínus, ak je číslo záporné. Presne jedna číslica vždy predchádza desatinnej čiarky.

Špecifikácia presnosti udáva požadovaný počet číslic za desatinnou bodku. Ak sa špecifikácia presnosti vynechá, použije sa predvolená hodnota šiestich číslic za desatinnou bodkou.

Prípad špecifikátoru formátu udáva, či má exponent predponovať znakom "E" alebo "e". Exponent sa vždy skladá z znamienko plus alebo mínus a minimálne tri číslice. Exponent je v prípade potreby vyplnený nulami, aby spĺňal toto minimum.

Výsledný reťazec je ovplyvnený informáciami o formátovaní aktuálnej jazykovej verzie.

Nasledujúci príklad formátuje hodnotu pomocou špecifikátoru exponenciálneho formátu:

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 

Poznámka

Prázdna textová hodnota ("") v poslednom parametri Number.ToText v predchádzajúcej ukážke odkazuje na invariantnú jazykovú verziu.

Špecifikácia formátu s pevným bodom (F)

Špecifikátor formátu s pevným bodom ("F") konvertuje číslo na reťazec formátu "-ddd.ddd..." kde každé "d" označuje číslicu (0 – 9). Reťazec sa začína znamienkom mínus, ak je číslo záporné.

Špecifikácia presnosti udáva požadovaný počet desatinných miest. Ak sa špecifikácia presnosti vynechá, predvolený počet desatinných miest, ktoré sa majú použiť v číselných hodnotách, je 2.

Výsledný reťazec je ovplyvnený informáciami o formátovaní aktuálnej jazykovej verzie.

Nasledujúci príklad formátuje hodnotu double a celočíselnú hodnotu pomocou špecifikátoru formátu s pevným bodom:

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

Špecifikátor všeobecného formátu (G)

Špecifikácia všeobecného formátu ("G") konvertuje číslo na kompaktnejší buď pevný bod alebo vedecký zápis, v závislosti od typu čísla a toho, či je prítomný špecifikácia presnosti. Špecifikácia presnosti definuje maximálny počet významných číslic, ktoré sa môžu zobraziť vo výslednom reťazci. Ak je špecifikácia presnosti vynechaná alebo nula, typ čísla určí predvolenú presnosť, ako je uvedené v nasledujúcej tabuľke.

Číselný typ Predvolená presnosť
Byte.Type alebo Int8.Type 3 číslice
Int16.Type Počet číslic: 5
Int32.Type 10 číslic
Int64.Type 19 číslic
Single.Type Počet číslic: 9
Double.Type 17 číslic
Decimal.Type 15 číslic

Zápis s pevným bodom sa použije, ak exponent, ktorý by bol výsledkom vyjadrenia čísla vo vedeckom zápise, je väčší ako -5 a menší ako špecifikácia presnosti; v opačnom prípade sa použije vedecký zápis. Výsledok obsahuje v prípade potreby desatinnú bodku a koncové nuly za desatinnou bodkou sa vynechájú. Ak je prítomná špecifikácia presnosti a počet významných číslic vo výsledku presahuje zadanú presnosť, nadbytočné koncové číslice sa odstránia zaokrúhlením.

Ak je Decimal.Type však číslo a špecifikácia presnosti sa vynechá, vždy sa použije zápis s pevným bodom a koncové nuly sa zachovajú.

Ak sa použije vedecký zápis, exponent vo výsledku bude mať predponu "E", ak má špecifikácia formátu hodnotu "G" alebo "e", ak má špecifikácia formátu hodnotu "g". Exponent obsahuje minimálne dve číslice. Tým sa líši od formátu pre vedecký zápis, ktorý je vytvorený exponenciálnym špecifikátorom formátu, ktorý obsahuje minimálne tri číslice v exponente.

Výsledný reťazec je ovplyvnený informáciami o formátovaní aktuálnej jazykovej verzie.

Nasledujúci príklad formátuje rôzne hodnoty s pohyblivou rádovou čiarkou so všeobecným špecifikátorom formátu:

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

Špecifikátor číselného formátu (N)

Číselný parameter ("N") formátu konvertuje číslo na reťazec formulára "-d,ddd,ddd.ddd...", kde "-" v prípade potreby označuje záporný symbol čísla, "d" označuje číslicu (0 – 9), "," označuje oddeľovač skupín a "." označuje symbol desatinnej čiarky. Špecifikácia presnosti udáva požadovaný počet číslic za desatinnou bodku. Ak sa špecifikácia presnosti vynechá, počet desatinných miest je definovaný aktuálnou jazykovou verziou.

Výsledný reťazec je ovplyvnený informáciami o formátovaní aktuálnej jazykovej verzie.

Nasledujúci príklad formátuje rôzne hodnoty s pohyblivou rádovou čiarkou so špecifikáciou formátu čísla:

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

Špecifikátor formátu percent (P)

Špecifikácia formátu percent (P) vynásobí číslo číslom 100 a konvertuje ho na reťazec, ktorý predstavuje percentuálnu hodnotu. Špecifikácia presnosti udáva požadovaný počet desatinných miest. Ak sa špecifikácia presnosti vynechá, použije sa predvolená číselná presnosť zadaná aktuálnou jazykovou verziou.

Nasledujúci príklad formátuje hodnoty s pohyblivou rádovou čiarkou s špecifikátorom formátu percent:

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

Špecifikátor hexadecimálneho formátu (X)

Špecifikátor formátu šestnástkového ("X") konvertuje číslo na reťazec šestnástkových číslic. Prípad špecifikátoru formátu udáva, či sa majú pre šestnástkové číslice, ktoré sú väčšie ako 9, použiť znaky veľkých alebo malých písmen. Použite napríklad "X" na vytvorenie "ABCDEF" a "x" na vytvorenie "abcdef". Tento formát je podporovaný iba pre celé typy.

Špecifikácia presnosti udáva minimálny počet číslic požadovaných vo výslednom reťazci. Ak sa to vyžaduje, číslo je vyplnené nulami naľavo, aby sa získal počet číslic zadaný špecifikáciou presnosti.

Výsledný reťazec nie je ovplyvnený informáciami o formátovaní aktuálnej jazykovej verzie.

Nasledujúci príklad formátuje hodnoty pomocou špecifikátoru šestnástkového formátu.

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

Poznámky

Táto časť obsahuje ďalšie informácie o používaní reťazcov štandardného číselného formátu.

Číselné typy celých čísel a s pohyblivou rádovou čiarkou

Niektoré popisy špecifikácií štandardného číselného formátu odkazujú na celočíselné alebo číselné typy s pohyblivou desatinnou čiarkou. Číselné typy celých čísel sú Byte.Type, Int8.Type, Int16.Type, Int32.TypeaInt64.Type. Číselné typy s pohyblivou desatinnou čiarkou sú Decimal.Type, Single.Typea Double.Type.

Nekonečnosti s pohyblivou desatinnou čiarkou a NaN

Bez ohľadu na reťazec formátu, ak je hodnota Decimal.Type, Single.Type alebo Double.Type typ s pohyblivou desatinnou čiarkou je kladné nekonečno, záporné nekonečno alebo nie číslo (NaN), formátovaný reťazec je hodnotou príslušných Number.PositiveInfinity, Number.NegativeInfinityalebo Number.NaN konštátov zadaných aktuálne príslušnou jazykovou verziou.

Príklad kódu

Nasledujúci príklad formátuje pohyblivú desatinnú čiarku a celočíselnú číselnú hodnotu pomocou jazykovej verzie en-US a všetkých špecifikácií štandardného číselného formátu. Tento príklad používa dva konkrétne číselné typy (Double.Type a Int32.Type), ale vráti podobné výsledky pre ktorýkoľvek z iných typov číselných základov (Byte.Type, Decimal.Type, Int8.Type, Int16.Type, Int64.Typea 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