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.Type
aInt64.Type
. Číselné typy s plovoucí desetinou čárkou jsou Decimal.Type
, Single.Type
a 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.Type
Int8.Type
, Int16.Type
, a Int64.Type
) by byly podobné Single.Type
vý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