Sdílet prostřednictvím


Vlastní řetězce číselného formátu

Lze vytvořit vlastní číselný formátovací řetězec, který se skládá z jednoho nebo několika vlastních číselných specifikátorů pro definování formátování číselných dat. Vlastní řetězec číselného formátu je jakýkoli formátovací řetězec, který není standardním řetězcem číselného formátu.

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

Specifikátor formátu Název Popis Příklady
"0" Zástupný symbol nula Nahradí nulu odpovídající číslicí, pokud je dostupná. V opačném případě se nula zobrazí ve výsledném řetězci.

Další informace: Vlastní specifikátor "0".
1234.5678 ("00000") -> 01235

0.45678 ("0.00", en-US) -> 0.46

0,45678 ("0,00", fr-FR) -> 0,46
"#" Zástupný symbol číslice Nahradí znak "#" odpovídající číslicí, pokud je k dispozici. V opačném případě se ve výsledném řetězci nezobrazí žádná číslice.

Ve výsledném řetězci se nezobrazí žádná číslice, pokud odpovídající číslice ve vstupním řetězci není znaménka 0. Například 0003 ("####") -> 3.

Další informace: Vlastní specifikátor "#".
1234,5678 ("#####") -> 1235

0.45678 ("#.##", en-US) –> .46

0.45678 ("#.##", fr-FR) –> ,46
"." Desetinná tečka Určuje umístění oddělovače desetinných míst ve výsledném řetězci.

Další informace: ". Vlastní specifikátor.
0.45678 ("0.00", en-US) -> 0.46

0,45678 ("0,00", fr-FR) -> 0,46
"," Oddělovač skupin a číselné měřítko Slouží jako oddělovač skupin a specifikátor číselného měřítka. Jako oddělovač skupin vloží znak oddělovače skupiny podle jazykové verze mezi jednotlivé skupiny. Jako specifikátor měřítka rozdělí číslo po 1000 pro každou zadanou čárku.

Další informace: Vlastní specifikátor ",".
Specifikátor oddělovače skupin:

2147483647 ("##,#", en-US) –> 2 147 483 647

2147483647 ("##,#", es-ES) –> 2.147.483.647

Specifikátor měřítka:

2147483647 ("#,#,", en-US) –> 2 147

2147483647 ("#,#,", es-ES) –> 2.147
"%" Zástupný znak procent Vynásobí číslo 100 a vloží do výsledného řetězce symbol procenta podle jazykové verze.

Další informace: Vlastní specifikátor %.
0,3697 (%#0.00) –> %36,97

0,3697 ("%#0,00", el-GR) –> %36 97

0.3697 ("##.0 %", en-US) –> 37,0 %

0,3697 ("##.0 %", el-GR) –> 37,0 %
"‰" Zástupný symbol promile Vynásobí číslo 1000 a vloží do výsledného řetězce symbol promile podle jazykové verze.

Další informace: Vlastní specifikátor "‰".
0.03697 ("#0.00‰", en-US) -> 36,97‰

0,03697 ("#0,00‰", ru-RU) –> 36 97‰
"E0"

"E+0"

"E-0"

"e0"

"e+0"

"e-0"
Exponenciální zápis Pokud následuje alespoň jedna 0 (nula), zformátuje výsledek pomocí exponenciálního zápisu. Velikost písmen "E" nebo "e" označuje velikost symbolu exponentu ve výsledném řetězci. Počet nul následujících znak "E" nebo "e" určuje minimální počet číslic v exponentu. Znaménko plus (+) označuje, že znak znaménka vždy předchází exponent. Znaménko mínus (-) označuje, že znak znaménka předchází pouze u záporných exponentů.

Další informace: Vlastní specifikátory "E" a "e".
987654 ("#0.0e0") –> 98.8e4

1503.92311 ("0.0##e+00") -> 1,504e+03

1.8901385E-16 ("0.0e+00") -> 1.9e-16
"\", "''", """" Řídicí znaky Způsobí, že další znak nebo znaky budou interpretovány jako literál, nikoli jako specifikátor vlastního formátu.

Další informace: Řídicí znaky.
987654 ("\###00\#") –> #987654#

987654 ("#'##00'#'") –> #987654#

987654 ("#"#"#00""#""") –> #987654#
Řetězec

"string"
Oddělovač řetězcového literálu Označuje, že uzavřené znaky by měly být zkopírovány do výsledného řetězce beze změny.

Další informace: Literály znaků.
68 ("# "stupňů") –> 68 stupňů

68 ("#' degrees'") –> 68 stupňů
; Oddělovač oddílů Definuje oddíly se zvláštními formátovacími řetězci pro kladná, záporná a nulová čísla.

Další informace: ";" Oddělovač oddílů.
12.345 ("#0.0#;( #0.0#);-\0-") -> 12.35

0 ("#0.0#;( #0.0#);-\0-") -> -0-

-12.345 ("#0.0#;( #0.0#);-\0-") -> (12.35)

12.345 ("#0.0#;( #0.0#)") –> 12.35

0 ("#0.0#;( #0.0#)") –> 0,0

-12.345 ("#0.0#;( #0.0#)") -> (12.35)
Jiný důvod Všechny ostatní znaky Znak je zkopírován do výsledného řetězce beze změny.

Další informace: Literály znaků.
68 ("# °") -> 68 °

V následujících částech jsou uvedeny podrobné informace o jednotlivých vlastních specifikátorech číselného formátu.

Vlastní specifikátor "0"

Specifikátor vlastního formátu "0" slouží jako zástupný symbol nuly. Pokud právě formátovaná hodnota má číslici na pozici, kde se zobrazí nula ve formátovacím řetězci, je tato číslice zkopírována do výsledného řetězce. V opačném případě se ve výsledném řetězci zobrazí nula. Pozice nuly nejvíce vlevo od desetinné čárky a nuly nejvíce vpravo od desetinné čárky určuje rozsah číslic, které jsou vždy obsaženy ve výsledném řetězci.

Specifikátor "00" způsobí, že hodnota se zaokrouhlí na nejbližší číslici předcházející desítky, kde je vždy použito zaokrouhlení směrem od nuly. Například formátování 34,5 se specifikátorem "00" dává výslednou hodnotu 35.

Následující příklad zobrazí několik hodnot, které jsou formátovány pomocí vlastních formátovacích řetězců, které obsahují zástupné symboly nuly.

let
    Source =
    {
        Number.ToText(123, "00000", ""),
        // Displays 00123

        Number.ToText(1.2, "0.00", ""),
        // Displays 1.20

        Number.ToText(1.2, "00.00", ""),
        // Displays 01.20

        Number.ToText(1.2, "00.00", "da-DK"),
        // Displays 01,20

        Number.ToText(.56, "0.0", ""),
        // Displays 0.6

        Number.ToText(1234567890, "0,0", ""),
        // Displays 1,234,567,890

        Number.ToText(1234567890, "0,0", "el-GR"),
        // Displays 1.234.567.890

        Number.ToText(1234567890.123456, "0,0.0", ""),
        // Displays 1,234,567,890.1

        Number.ToText(1234.567890, "0,0.00", "")
        // Displays 1,234.57
    }
in
    Source

Poznámka:

Prázdná textová hodnota ("") v posledním parametru Number.ToText v předchozí ukázce odkazuje na invariantní jazykovou verzi.

Zpět k tabulce

Vlastní specifikátor "#"

Specifikátor vlastního formátu "#" slouží jako zástupný symbol číslice. Pokud právě formátovaná hodnota má číslici na pozici, kde se nachází ve formátovacím řetězci znak "#", zkopíruje se číslice do výsledného řetězce. V opačném případě není na této pozici v řetězci uloženo nic.

Všimněte si, že tento specifikátor nikdy nezobrazí nulu, která není významnou číslicí, i když je nula jedinou číslicí v řetězci. Zobrazí nulu pouze v případě, že se jedná o významnou číslici v zobrazeném čísle.

Formátovací řetězec "## "způsobí, že hodnota se zaokrouhlí na nejbližší číslici předcházející desítky, kde je vždy použito zaokrouhlení směrem od nuly. Například formátování 34,5 se specifikátorem "##" dává výslednou hodnotu 35.

Následující příklad zobrazí několik hodnot, které jsou formátovány pomocí vlastních formátovacích řetězců, které obsahují zástupné symboly číslice.

let
    Source =
    {
        Number.ToText(1.2, "#.##", ""),
        // Displays 1.2

        Number.ToText(123, "#####"),
        // Displays 123

        Number.ToText(123456, "[##-##-##]"),
        // Displays [12-34-56]

        Number.ToText(1234567890, "#"),
        // Displays 1234567890

        Number.ToText(1234567890, "(###) ###-####")
        // Displays (123) 456-7890
    }
in
    Source

Chcete-li vrátit výsledný řetězec, ve kterém chybí číslice nebo počáteční nuly jsou nahrazeny mezerami, použijte Text.PadStart a zadejte šířku pole, jak je znázorněno v následujícím příkladu.

let
   Source = Text.Format("The value is: '#{0}'", {Text.PadStart(Number.ToText(.324, "#.###"), 5)})
in
   Source

// The example displays the following output if the current culture
// is en-US:
//      The value is: ' .324'

Zpět k tabulce

Vlastní specifikátor ".

Specifikátor vlastního formátu "." vloží lokalizovaný oddělovač desetinných míst do výsledného řetězce. První tečka ve formátovacím řetězci určuje umístění oddělovače desetinných míst ve formátované hodnotě. Jakékoli další tečky jsou ignorovány. Pokud specifikátor formátu končí znakem ". Do výsledného řetězce jsou formátovány pouze významné číslice.

Znak, který se používá jako oddělovač desetinných míst ve výsledném řetězci, není vždy tečka; určuje jazyková verze, která řídí formátování.

Následující příklad používá specifikátor formátu "." pro určení umístění desetinné tečky v několika výsledných řetězcích.

let
    Source =
    {
        Number.ToText(1.2, "0.00", ""),
        // Displays 1.20

        Number.ToText(1.2, "00.00", ""),
        // Displays 01.20

        Number.ToText(1.2, "00.00", "da-DK"),
        // Displays 01,20

        Number.ToText(.086, "#0.##%", ""),
        // Displays 8.6%

        Number.ToText(Double.From(86000), "0.###E+0", "")
        // Displays 8.6E+4
    }
in
    Source

Zpět k tabulce

Vlastní specifikátor ","

Znak "," slouží jako oddělovač skupin a specifikátor číselného měřítka.

  • Oddělovač skupin: Pokud je zadána jedna nebo více čárek mezi dva zástupné znaky pro číslice (0 nebo #), které formátují integrální číslice čísla, je znak oddělovače skupin vložen mezi každou číselnou skupinu do integrální části výstupu.

    Jazyková verze určuje znak použitý jako oddělovač skupin čísel a velikost každé skupiny čísel. Pokud je například pro formátování čísla 1000 použit řetězec "#,#" a invariantní jazyková verze, zobrazí se výstup "1,000".

  • Specifikátor číselného měřítka: Pokud je zadána jedna nebo více čárek bezprostředně vlevo od explicitní nebo implicitní desetinné tečky, pak číslo, které má být formátováno, je vyděleno hodnotou 1000 pro každou tečku. Pokud je pro formátování čísla 100 milionů použit například řetězec "0,," , je výsledná hodnota "100".

Můžete použít oddělovač skupin a specifikátory číselného měřítka ve stejném formátovacím řetězci. Pokud je pro formátování čísla jedna miliarda použit například řetězec "#,0,," a invariantní jazyková verze, zobrazí se výstup "1,000".

Následující příklad ukazuje použití čárky jako oddělovače skupin.

let
    Source =
    {
        Number.ToText(1234567890, "#,#", ""),
        // Displays 1,234,567,890

        Number.ToText(1234567890, "#,##0,,", "")
        // Displays, 1,235
    }
in
    Source

Následující příklad ukazuje použití čárky jako specifikátoru číselného měřítka.

let
    Source =
    {
        Number.ToText(1234567890, "#,,", ""),
        // Displays 1235

        Number.ToText(1234567890, "#,,,", ""),
        // Displays 1

        Number.ToText(1234567890, "#,##0,,", "")
        // Displays 1,235
    }
in
    Source

Zpět k tabulce

Vlastní specifikátor "%"

Znak procenta (%) ve formátovacím řetězci způsobí, že se číslo vynásobí číslem 100 před jeho formátováním. Lokalizovaný symbol procenta je vložen do čísla na místo, kde se % vyskytuje ve formátovacím řetězci. Použitý znak procenta je definován jazykovou verzí.

Následující příklad definuje vlastní formátovací řetězec, který obsahuje vlastní specifikátor "%".

let
    Source = Number.ToText(.086, "#0.##%", "")
    // Displays 8.6%
in
    Source

Zpět k tabulce

Vlastní specifikátor "‰"

Znak na mile (‰ nebo \u2030) ve formátovacím řetězci způsobí, že se číslo vynásobí číslem 1000 před jeho formátováním. Příslušný symbol promile je vložen do vráceného řetězce na místě, kde se zobrazí symbol ‰ ve formátovacím řetězci. Použitý znak pro mile je definován jazykovou verzí, která poskytuje informace o formátování specifické pro jazykovou verzi.

Následující příklad definuje vlastní formátovací řetězec, který obsahuje vlastní specifikátor "‰".

let
    Source = Number.ToText(.00354, "#0.##" & Character.FromNumber(0x2030), "")
    // Displays 3.54‰
in
    Source

Zpět k tabulce

Vlastní specifikátory "E" a "e"

Pokud je ve formátovacím řetězci přítomný některý z řetězců "E", "E+", "E-", "e", "e+" nebo "e-" a je okamžitě následován alespoň jednou nulou, je číslo formátováno pomocí vědeckého zápisu se znakem "E" nebo "e" vloženým mezi číslo a exponent. Počet nul následujících po indikátoru vědeckého zápisu určuje minimální počet číslic pro výstup exponentu. Formáty "E+" a "e+" označují, že znaménka plus nebo minus by měla vždy předcházet exponent. Formáty "E", "E-", "e" nebo "e-" označují, že znak znaménka by měl předcházet pouze záporné exponenty.

Následující příklad formátuje několik číselných hodnot pomocí specifikátorů pro vědecký zápis.

let
    Source =
    {
        Number.ToText(86000, "0.###E+0", ""),
        // Displays 8.6E+4

        Number.ToText(86000, "0.###E+000", ""),
        // Displays 8.6E+004

        Number.ToText(86000, "0.###E-000", "")
        // Displays 8.6E004
    }
in
    Source

Zpět k tabulce

Řídicí znaky

Symboly "#", "0", ".", ",", "%" a "‰" jsou ve formátovacím řetězci interpretovány jako specifikátory formátu, nikoli jako literální znaky. V závislosti na jejich pozici v řetězci vlastního formátu lze také interpretovat velká a malá písmena "E" a symboly + a - jako specifikátory formátu.

Pokud chcete zabránit interpretaci znaku jako specifikátoru formátu, můžete:

  • Před ním zadejte zpětné lomítko.
  • Obklopte ho jednou uvozovkou.
  • Obklopte ho dvěma dvojitými uvozovkami.

Každý z těchto znaků funguje jako řídicí znaky. Řídicí znak označuje, že následující znak je literální znak, který by měl být zařazen do výsledného řetězce beze změny.

Pokud chcete do výsledného řetězce zahrnout zpětné lomítko, musíte ho utéct jiným zpětným lomítkem (\\).

Pokud chcete do výsledného řetězce zahrnout jednu uvozovku, musíte ji uvozit zpětným lomítkem (\'). Pokud před řídicí jednoduchou uvozovkou předchází jiná jednoduchá uvozovka, zobrazí se místo toho zpětné lomítko ('\' zobrazí \).

Pokud chcete do výsledného řetězce zahrnout dvojitou uvozovku, musíte uvozit dvě z nich zpětným lomítkem (\"").

Následující příklad používá řídicí znaky k zabránění operaci formátování interpretovat znaky "#", "0" a "" jako řídicí znaky nebo specifikátory formátu.

let
    Source =
    {
        Number.ToText(123, "\#\#\# ##0 dollars and \0\0 cents \#\#\#"),
        // Displays ### 123 dollars and 00 cents ###

        Number.ToText(123, "'###' ##0 dollars and '00' cents '###'"),
        // Displays ### 123 dollars and 00 cents ###

        Number.ToText(123, """###"" ##0 dollars and ""00"" cents ""###"""),
        // Displays ### 123 dollars and 00 cents ###

        Number.ToText(123, "\\\\\\ ##0 dollars and \0\0 cents \\\\\\"),
        // Displays \\\ 123 dollars and 00 cents \\\

        Number.ToText(123, "'\\\' ##0 dollars and '00' cents '\\\'"),
        // Displays \\\ 123 dollars and 00 cents \\\

        Number.ToText(123, """\\\"" ##0 dollars and ""00"" cents ""\\\""")
        // Displays \\\ 123 dollars and 00 cents \\\
    }
in
    Source

Zpět k tabulce

Oddělovač oddílů ;

Středník (;) je podmíněný specifikátor formátu, který aplikuje odlišné formátování pro číslo v závislosti na tom, zda je jeho hodnota kladná, záporná nebo nulová. Pro vytvoření takového typu formátování může vlastní formátovací řetězec obsahovat až tři oddíly oddělené středníky. Tyto oddíly jsou popsány v následující tabulce.

Počet oddílů Popis
Jeden oddíl Formátovací řetězec se vztahuje na všechny hodnoty.
Dva oddíly První oddíl je aplikován na kladné a nulové hodnoty a druhý oddíl je aplikován na záporné hodnoty.

Pokud číslo, které má být formátováno, je záporné, ale bude po zaokrouhlení podle formátu ve druhém oddílu rovno nule, bude výsledná nula formátována podle prvního oddílu.
Tři oddíly První oddíl se používá pro kladná čísla, druhý oddíl pro záporné hodnoty a třetí oddíl pro nulové hodnoty.

Druhá část může být ponechána prázdná (tím, že mezi středníky nic nebude). V tomto případě se první část vztahuje na všechny nenulové hodnoty.

Pokud číslo, které má být formátováno, je nenulové, ale bude po zaokrouhlení podle formátu v prvním nebo druhém oddílu rovno nule, výsledná nula bude formátována podle třetího oddílu.

Oddělovače oddílů ignorují všechna dříve existující formátování přidružená k číslu, pokud je na formátována konečná hodnota. Například záporné hodnoty se při použití oddělovače oddílu zobrazí vždy bez znaménka mínus. Pokud chcete, aby konečná formátovaná hodnota měla symbol mínus, měli byste explicitně zahrnout symbol mínus jako část specifikátoru vlastního formátu.

Následující příklad používá specifikátor formátu ";" pro formátování kladných, záporných a nulových čísel odlišným způsobem.

let
    Source =
    {
        Number.ToText(1234, "##;(##)"),
        // Displays 1234

        Number.ToText(-1234, "##;(##)"),
        // Displays (1234)

        Number.ToText(0, "##;(##);**Zero**")
        // Displays **Zero**
    }
in
    Source

Zpět k tabulce

Literály znaků

Specifikátory formátu, které se zobrazují ve vlastním řetězci číselného formátu, se vždy interpretují jako formátovací znaky a nikdy jako literální znaky. To zahrnuje následující znaky:

Všechny ostatní znaky jsou vždy interpretovány jako literály znaků a ve operaci formátování jsou zahrnuty do výsledného řetězce beze změny. V operaci analýzy musí přesně odpovídat znakům ve vstupním řetězci; porovnání se rozlišují malá a velká písmena.

Následující příklad ukazuje jedno společné použití literálových znakových jednotek (v tomto případě tisíců):

let
    Source = Number.ToText(123.8, "#,##0.0K")
    // Displays 123.8K
in
    Source

Existují dva způsoby, jak označit, že se znaky mají interpretovat jako literální znaky, nikoli jako formátovací znaky, aby je bylo možné zahrnout do výsledného řetězce nebo úspěšně analyzovat ve vstupním řetězci:

  • Zapouzdřením znaku formátování. Další informace najdete v tématu Řídicí znaky.

  • Uzavřením celého literálového řetězce do uvozovek apostrofů.

Následující příklad používá oba přístupy k zahrnutí vyhrazených znaků do vlastního řetězce číselného formátu.

let
    Source =
    {
        Number.ToText(9.3, "##.0\%"),
        // Displays 9.3%

        Number.ToText(9.3, "\'##\'"),
        // Displays '9'

        Number.ToText(9.3, "\\##\\"),
        // Displays \9\

        Number.ToText(9.3, "##.0'%'"),
        // Displays 9.3%

        Number.ToText(9.3, "'\'##'\'"),
        // Displays \9\

        Number.ToText(9.3, "##.0""%"""),
        // Displays 9.3%

        Number.ToText(9.3, "\""##\""")
        // Displays "9"
    }
in
    Source

Notes

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í.

Zaokrouhlování a řetězce formátu s pevnými body

U řetězců formátu s pevným bodem (to znamená formátovací řetězce, které neobsahují znaky formátu vědeckého zápisu), se čísla zaokrouhlí na tolik desetinných míst, kolik je zástupných symbolů číslic napravo od desetinné čárky. Pokud formátovací řetězec neobsahuje desetinnou čárku, číslo se zaokrouhlí na nejbližší celé číslo. Pokud má dané číslo více číslic, než je počet zástupných symbolů číslic nalevo od desetinné čárky, jsou další číslice zkopírovány do výsledného řetězce bezprostředně před první zástupný symbol číslice.

Zpět k tabulce

Příklad

Následující příklad ukazuje dva vlastní číselné formátovací řetězce. V obou případech zástupný symbol číslice (#) zobrazí číselná data a všechny ostatní znaky se zkopírují do výsledného řetězce.

let
    Source =
    {
        Number.ToText(1234567890, "(###) ###-####"),
        // Displays (123) 456-7890

        Number.ToText(42, "My Number = #")
        // Displays My number = 42
    }
in
    Source

Zpět k tabulce