Sdílet prostřednictvím


Standardní řetězce formátu čísla

Řetězce standardního číselného formátu se používají pro formátování běžných číselných typů. Standardní řetězec číselného formátu má tvar [format specifier][precision specifier], kde:

  • Specifikátor formátu je jeden abecední znak, který určuje typ číselného formátu, například měnu nebo procento. Jakýkoli řetězec číselného formátu, který obsahuje více než jeden abecední znak, včetně prázdných znaků, je interpretován jako řetězec vlastního číselného formátu. Další informace najdete v tématu Vlastní řetězce číselného formátu.

  • Specifikátor přesnosti je volitelné celé číslo, které ovlivňuje počet číslic ve výsledném řetězci. Specifikátor přesnosti řídí počet číslic v řetězcové reprezentaci čísla.

    Pokud specifikátor přesnosti řídí počet desetinných číslic ve výsledném řetězci, bude výsledný řetězec odrážet číslo zaokrouhlené na reprezentovatelný výsledek nejblíže nekonečnému přesnému výsledku.

    Poznámka:

    Specifikátor přesnosti určuje počet číslic ve výsledném řetězci. K vložení výsledného řetězce s počátečními nebo koncovými mezerami nebo jinými znaky (například 0) použijte funkce Text.PadStart a Text.PadEnd a použijte celkovou délku count v těchto funkcích k vložení výsledného řetězce.

Funkce Number.ToText podporuje standardní řetězce číselného formátu.

Specifikátory standardního formátu

Následující tabulka popisuje standardní specifikátory číselného formátu a zobrazuje ukázkový výstup vytvořený specifikátorem jednotlivých formátů. Další informace o použití standardních řetězců číselného formátu najdete v části Poznámky a v části Příklad kódu najdete ucelenou ilustraci jejich použití.

Poznámka:

Výsledek formátovaného řetězce pro konkrétní jazykovou verzi se může lišit od následujících příkladů. Nastavení operačního systému, uživatelská nastavení, proměnné prostředí a další nastavení v systému, který používáte, můžou mít vliv na formát.

Specifikátor formátu Název Popis Příklady
"C" nebo "c" Měna Výsledek: hodnota měny.

Podporováno: všemi číselnými typy.

Specifikátor přesnosti: počet desetinných míst.

Výchozí specifikátor přesnosti: Definovaný jazykovou verzí

Další informace: Specifikátor formátu měny ("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" nebo "d" Desetinné číslo Výsledek: celá čísla s volitelným záporným znaménkem.

Podporováno: pouze integrálovými typy.

Specifikátor přesnosti: minimální počet číslic.

Výchozí specifikátor přesnosti: minimální požadovaný počet číslic.

Další informace: Specifikátor formátu Decimal("D")
1234 ("D")
-> 1234

-1234 ("D6")
-> -001234
"E" nebo "e" Exponenciální (vědecký) zápis Výsledek: exponenciální zápis.

Podporováno: všemi číselnými typy.

Specifikátor přesnosti: počet desetinných míst.

Výchozí specifikátor přesnosti: 6.

Další informace: Specifikátor formátu exponenciálního formátu ("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" nebo "f" Pevná desetinná čárka Výsledek: integrální a desítkové číslo s volitelným záporným znaménkem.

Podporováno: všemi číselnými typy.

Specifikátor přesnosti: počet desetinných míst.

Výchozí specifikátor přesnosti: Definovaný jazykovou verzí

Další informace: Specifikátor formátu pevného bodu ("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" nebo "g" OBECNÉ Výsledek: Kompaktnější z pevné nebo vědecké notace.

Podporováno: všemi číselnými typy.

Specifikátor přesnosti: počet nejvýznamnějších číslic.

Výchozí specifikátor přesnosti: závisí na číselném typu.

Další informace: Specifikátor formátu Obecné ("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" nebo "n" Počet Výsledek: integrální a desítkové číslice, oddělovače skupin a oddělovač desetinných míst s volitelným záporným znaménkem.

Podporováno: všemi číselnými typy.

Specifikátor přesnosti: požadovaný počet desetinných míst.

Výchozí specifikátor přesnosti: Definovaný jazykovou verzí

Další informace: Specifikátor formátu číselného formátu ("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" nebo "p" Procenta Výsledek: číslo vynásobené číslem 100 a zobrazené se symbolem procenta.

Podporováno: všemi číselnými typy.

Specifikátor přesnosti: požadovaný počet desetinných míst.

Výchozí specifikátor přesnosti: Definovaný jazykovou verzí

Další informace: Specifikátor formátu procent ("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" nebo "x" Šestnáctková hodnota Výsledek: šestnáctkový řetězec.

Podporováno: pouze integrálovými typy.

Specifikátor přesnosti: počet číslic ve výsledném řetězci.

Další informace: Specifikátor šestnáctkového formátu ("X").
255 ("X")
-> FF

-1 ("x")
-> ff

255 ("x4")
-> 00ff

-1 ("X4")
-> 00FF
Jakýkoli jiný samostatný znak Neznámý specifikátor Výsledek: Vyvolá chybu výrazu za běhu.

Použití standardních řetězců číselného formátu

Standardní řetězec číselného formátu lze použít k definování formátování číselné hodnoty. Dá se předat parametru Number.ToTextformat. Následující příklad naformátuje číselnou hodnotu jako řetězec měny v aktuální jazykové verzi (v tomto případě jazyková verze en-US).

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

Volitelně můžete do funkcí Text.PadStart a Text.PadEnd zadat count argument, který určuje šířku číselného pole a jestli je jeho hodnota zarovnaná doprava nebo doleva. Následující ukázka například zarovná hodnotu měny do pole s 28 znaky a zarovná hodnotu měny do pole s 14 znaky (při použití monoprostorového písma).

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

Následující oddíly obsahují podrobné informace o jednotlivých řetězcích standardního číselného formátu.

Specifikátor formátu měny (C)

Specifikátor formátu "C" (neboli měny) převede číslo na řetězec, který představuje peněžní částku. Specifikátor přesnosti označuje požadovaný počet desetinných míst ve výsledném řetězci. Pokud specifikátor přesnosti vynecháte, výchozí počet desetinných míst, které se mají použít v hodnotách měny, je 2.

Pokud má formátovaná hodnota větší než zadaný nebo výchozí počet desetinných míst, je desetinná hodnota ve výsledném řetězci zaokrouhlena. Pokud je vpravo od zadaného počtu desetinných míst hodnota 5 nebo vyšší, bude poslední číslice ve výsledném řetězci zaokrouhlena směrem nahoru.

Výsledný řetězec má vliv na formátování aktuální jazykové verze.

Následující příklad naformátuje hodnotu se specifikátorem formátu měny:

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.

Specifikátor formátu desetinných míst (D)

Specifikátor formátu "D" (desítkové číslo) převede číslo na řetězec desítkových číslic (0-9), kterému předchází symbol mínus, je-li číslo záporné. Tento formát je podporován pouze pro integrální typy.

Specifikátor přesnosti označuje minimální počet číslic požadovaných ve výsledném řetězci. V případě potřeby je číslo doplněno nulami po levé straně za účelem vytvoření počtu číslic, který je dán specifikátorem přesnosti. Pokud není zadán žádný specifikátor přesnosti, je výchozí hodnotou minimální hodnota požadovaná k vytvoření celého čísla bez počátečních nul.

Výsledný řetězec má vliv na formátování aktuální jazykové verze.

Následující příklad naformátuje hodnotu se specifikátorem desítkového formátu.

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 

Specifikátor exponenciálního formátu (E)

Exponenciální specifikátor formátu ("E") převede číslo na řetězec ve formě "-d.ddd…E+ddd" nebo "-d.ddd…e+ddd", kde každé "d" označuje číslici (0-9). Pokud je číslo záporné, řetězec začíná symbolem mínus. Desetinné čárce předchází vždy přesně jedna číslice.

Specifikátor přesnosti označuje požadovaný počet číslic za desetinnou čárkou. Pokud specifikátor přesnosti vynecháte, je za desetinnou čárkou použit výchozí počet šesti číslic.

Velikost specifikátoru formátu označuje, zda má být před exponentem použita předpona "E" nebo "e". Exponent se skládá vždy ze znaménka plus nebo mínus a minimálně tří číslic. Aby byl tento minimální požadavek splněn, je exponent v případě potřeby doplněn nulami.

Výsledný řetězec má vliv na formátování aktuální jazykové verze.

Následující příklad naformátuje hodnotu se specifikátorem exponenciálního 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ázdná textová hodnota ("") v posledním parametru Number.ToText v předchozí ukázce odkazuje na invariantní jazykovou verzi.

Specifikátor formátu s pevným bodem (F)

Specifikátor formátu pevného bodu ("F") převede číslo na řetězec formuláře "-ddd.dddd..." kde každá "d" označuje číslici (0-9). Pokud je číslo záporné, řetězec začíná symbolem mínus.

Specifikátor přesnosti označuje požadovaný počet desetinných míst. Pokud specifikátor přesnosti vynecháte, výchozí počet desetinných míst, která se mají použít v číselných hodnotách, je 2.

Výsledný řetězec má vliv na formátování aktuální jazykové verze.

Následující příklad formátuje dvojitou a celočíselnou hodnotu se specifikátorem formátu s pevným bodem:

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

Specifikátor obecného formátu (G)

Specifikátor obecného formátu ("G") převede číslo na kompaktnější z pevné nebo vědecké notace v závislosti na typu čísla a na tom, zda je přítomen specifikátor přesnosti. Specifikátor přesnosti definuje maximální počet platných číslic, které mohou být zobrazeny ve výsledném řetězci. Pokud specifikátor přesnosti vynecháte nebo je specifikátor nulový, pak typ čísla určuje výchozí přesnost, jak je uvedeno v následující tabulce.

Číselný typ Výchozí přesnost
Byte.Type nebo Int8.Type 3 číslice
Int16.Type 5 číslic
Int32.Type 10 číslic
Int64.Type 19 číslic
Single.Type 9 číslic
Double.Type 17 číslic
Decimal.Type 15 číslic

Zápis s pevnou desetinnou čárkou se používá v případě, že exponent, který by byl výsledkem vyjádření čísla ve vědeckém zápisu, je větší než -5 a menší než specifikátor přesnosti. Jinak se použije vědecký zápis. V případě potřeby obsahuje výsledek desetinnou čárku a koncové nuly po vynechání desetinné čárky. Pokud je k dispozici specifikátor přesnosti a počet platných číslic ve výsledku překračuje zadanou přesnost, pak jsou přebytečné koncové nuly odstraněny zaokrouhlením.

Pokud je ale číslo a Decimal.Type specifikátor přesnosti vynechá, použije se zápis s pevným bodem a koncové nuly se zachovají.

Pokud použijete vědecký zápis, pak je před exponentem ve výsledku předpona "E", je-li specifikátor formát "G"; nebo předpona "e", je-li specifikátor formátu "g". Exponent obsahuje minimálně dvě číslice. Tím se liší od formátu pro vědecký zápis, který je vytvořen exponenciálním specifikátorem formátu, což zahrnuje minimálně tři číslice v exponentu.

Výsledný řetězec má vliv na formátování aktuální jazykové verze.

Následující příklad formátuje seřazené hodnoty s plovoucí desetinou čárkou se specifikátorem obecného 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

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

Specifikátor číselného formátu ("N") převede číslo na řetězec ve formě "-d,ddd,ddd.ddd…", kde "-" označuje symbol záporného čísla, je-li vyžadován, "d" označuje číslice (0-9), "," označuje oddělovač skupin a "." označuje symbol desetinné čárky. Specifikátor přesnosti označuje požadovaný počet číslic za desetinnou čárkou. Pokud je specifikátor přesnosti vynechán, je počet desetinných míst definován aktuální jazykovou verzí.

Výsledný řetězec má vliv na formátování aktuální jazykové verze.

Následující příklad formátuje seřazené hodnoty s plovoucí desetinou čárkou se specifikátorem číselného formátu:

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

Specifikátor formátu procent (P)

Specifikátor procentuálního formátu ("P") vynásobí číslo 100 a převede ho na řetězec, který představuje procenta. Specifikátor přesnosti označuje požadovaný počet desetinných míst. Pokud specifikátor přesnosti vynecháte, použije se výchozí číselná přesnost zadaná aktuální jazykovou verzí.

Následující příklad formátuje hodnoty s plovoucí desetinou čárkou se specifikátorem procentuálního formátu:

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

Specifikátor šestnáctkového formátu (X)

Specifikátor šestnáctkového formátu ("X") převede číslo na řetězec šestnáctkových číslic. Velikost specifikátoru formátu označuje, zda pro šestnáctkové číslice, které jsou větší než 9, je nutné používat velká nebo malá písmena. Například pro vytvoření řetězce "ABCDEF" použijte formát "X", pro vytvoření řetězce "abcdef" použijte formát "x". Tento formát je podporován pouze pro integrální typy.

Specifikátor přesnosti označuje minimální počet číslic požadovaných ve výsledném řetězci. V případě potřeby je číslo doplněno nulami po levé straně za účelem vytvoření počtu číslic, který je dán specifikátorem přesnosti.

Výsledný řetězec není ovlivněn formátováním informací aktuální jazykové verze.

Následující příklad formátuje hodnoty se specifikátorem šestnáctkové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

Notes

Tato část obsahuje další informace o použití standardních řetězců číselného formátu.

Integrální a číselné typy s plovoucí desetinou čárkou

Některé popisy specifikátorů standardního číselného formátu odkazují na integrální číselné typy nebo typy s plovoucí desetinnou čárkou. Integrální číselné typy jsou Byte.Type, Int8.Type, Int16.Type, Int32.TypeaInt64.Type. Číselné typy s plovoucí desetinou čárkou jsou Decimal.Type, Single.Typea Double.Type.

Infinity s plovoucí desetinnou čárkou a NaN

Bez ohledu na formátovací řetězec, pokud hodnota Decimal.Type, Single.Type nebo Double.Type typ s plovoucí desetinnou čárkou je kladné nekonečno, záporné nekonečno nebo ne číslo (NaN), formátovaný řetězec je hodnota odpovídající Number.PositiveInfinity, Number.NegativeInfinitynebo Number.NaN konstanty určené aktuálně použitelnou jazykovou verzí.

Příklad kódu

Následující příklad formátuje plovoucí desetinou čárku a celočíselnou číselnou hodnotu pomocí jazykové verze en-US a všech standardních specifikátorů číselného formátu. V tomto příkladu se používají dva konkrétní číselné typy (Double.Type a ), ale pro kterýkoli z ostatních číselných základních typů (Int32.Type, Byte.Type, , Decimal.TypeInt8.Type, Int16.Type, a Int64.Type) by byly podobné Single.Typevýsledky.

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