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.Type
aInt64.Type
. Číselné typy s pohyblivou desatinnou čiarkou sú Decimal.Type
, Single.Type
a 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.Type
a 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