Standardní číselné formátovací řetězce
Standardní číselné formátovací řetězce se používají k formátování běžných číselných typů. Standardní číselný formátovací řetězec převezme formu Axx, kde A je abecední znak nazvaný specifikátor formátu, a xx je volitelné celé číslo nazvané specifikátor přesnosti. Specifikátor přesnosti má rozsah od 0 do 99 a má vliv na počet číslic ve výsledku. Jakýkoli číselný formátovací řetězec, který obsahuje více než jeden abecední znak, včetně prázdných znaků, je interpretován jako vlastní číselný formátovací řetězec. Další informace naleznete v tématu Vlastní číselné formátovací řetězce.
Standardní číselné formátovací řetězce jsou podporovány některými přetíženími metody ToString pro všechny číselné typy. Například můžete zadat číselný formátovací řetězec metodám ToString(String) a ToString(String, IFormatProvider) typu Int32. Standardní číselné formátovácí řetězce jsou také podporovány rozhraním .NET Framework funkce složeného formátování, která je používána některými metodami Write a WriteLine tříd Console a StreamWriter, metodami String.Format a StringBuilder.AppendFormat.
Tip |
---|
Můžete stáhnout Formát nástrojeaplikace, která umožňuje použít formát řetězce číselné nebo datové a časové hodnoty a zobrazí výsledný řetězec. |
Následující tabulka popisuje standardní specifikátory číselného formátu a zobrazí ukázkový výstup vyprodukovaný každým specifikátorem formátu. Další informace o použití standardních číselných formátovacích řetězců naleznete v oddílu Poznámky a komplexní ukázky použití naleznete v oddílu Příklad.
Specifikátor formátu |
Název |
Popis |
Příklady |
---|---|---|---|
C nebo c |
Měna |
Výsledek: Hodnota měny. Podporována: Všechny číselné typy. Specifikátor přesnosti: Počet desetinných míst. Výchozí specifikátor přesnosti: Definován System.Globalization.NumberFormatInfo. 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 |
Desítková |
Výsledek: Celá čísla s volitelným záporným znaménkem. Podporována: Pouze integrální typy. Specifikátor přesnosti: Minimální počet číslic. Výchozí specifikátor přesnosti: Požadovaný minimální počet číslic. Další informace: Specifikátor formátu desítkového čísla D. |
1234 ("D") -> 1234 -1234 ("D6") -> -001234 |
E nebo e |
Exponenciální (vědecké) |
Výsledek: Exponenciální zápis. Podporována: Všechny číselné typy. Specifikátor přesnosti: Počet desetinných míst. Výchozí specifikátor přesnosti: 6. Další informace: Exponenciální specifikátoru 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ána: Všechny číselné typy. Specifikátor přesnosti: Počet desetinných míst. Výchozí specifikátor přesnosti: Definován System.Globalization.NumberFormatInfo. Další informace: Specifikátor formátu s pevnou desetinnou čárkou 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: Nejkompaktnější z buď pevné desetinné čárky nebo vědecké poznámky. Podporována: Všechny číselné typy. Specifikátor přesnosti: Počet důležitých číslic. Výchozí specifikátor přesnosti: Závisí na číselném typu. Další informace: Obecný specifikátor formátu 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 |
Číslo |
Výsledek: Integrální a desítkové číslice, oddělovače skupin a dekadický oddělovač s volitelným záporným znaménkem. Podporována: Všechny číselné typy. Specifikátor přesnosti: Požadovaný počet desetinných míst. Výchozí specifikátor přesnosti: Definován System.Globalization.NumberFormatInfo. Další informace: Číselný specifikátor formátu N. |
1234.567 ("N", en-US) -> 1,234.57 1234.567 ("N", ru-RU) -> 1 234,57 1234 ("N", en-US) -> 1,234.0 1234 ("N", ru-RU) -> 1 234,0 -1234.56 ("N", en-US) -> -1,234.560 -1234.56 ("N", ru-RU) -> -1 234,560 |
"P" nebo "p" |
Procent |
Výsledek: Číslo vynásobené 100 a zobrazené se symbolem procenta. Podporována: Všechny číselné typy. Specifikátor přesnosti: Požadovaný počet desetinných míst. Výchozí specifikátor přesnosti: Definován System.Globalization.NumberFormatInfo. 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 % |
R nebo r |
Round-trip |
Výsledek: Řetězec, který může použít operaci round-trip na stejné číslo. Podporována: Single, Double a BigInteger. Specifikátor přesnosti: Nejsou dostupné. Další informace: Specifikátor formátu Round-trip R. |
123456789.12345678 ("R") -> 123456789.12345678 -1234567890.12345678 ("R") -> -1234567890.1234567 |
"X" nebo "x" |
Šestnáctková |
Výsledek: Šestnáctkový řetězec. Podporována: Pouze integrální typy. Specifikátor přesnosti: Počet číslic ve výsledném řetězci. Další informace: Šestnáctkový specifikátor formátu X. |
255 ("X") -> FF -1 ("x") -> ff 255 ("x4") -> 00ff -1 ("X4") -> 00FF |
Jakýkoli jiný jednoduchý znak |
Neznámý specifikátor |
Výsledek: Vyvolá FormatException v době běhu. |
Použití standardního číselného formátovacího řetězce
Standardní číselný formátovací řetezec lze použít pro definování formátování číselné hodnoty jedním ze dvou způsobů:
Může být předán přetížení metody ToString, která má parametr format. Následující příklad formátuje číselnou hodnotu jako řetězec měny v aktuální (v tomto případě en-US) jazykové verzi.
Dim value As Decimal = 123.456d Console.WriteLine(value.ToString("C2")) ' Displays $123.46
decimal value = 123.456m; Console.WriteLine(value.ToString("C2")); // Displays $123.46
Může být dodán jako parametr formatString ve formátovací položce, která je používána v takových metodách, jako String.Format, Console.WriteLine a StringBuilder.AppendFormat. Další informace naleznete v tématu Složené formátování. Následující příklad používá formátovací položku pro vložení hodnoty měny do řetězce.
Dim value As Decimal = 123.456d Console.WriteLine("Your account balance is {0:C2}.", value) ' Displays "Your account balance is $123.46."
decimal value = 123.456m; Console.WriteLine("Your account balance is {0:C2}.", value); // Displays "Your account balance is $123.46."
Následující oddíly obsahují podrobné informace o jednotlivých standardních číselných formátovacích řetězcích.
Specifikátor formátu měny C
Specifikátor formátu C (nebo měna) 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 je specifikátor přesnosti vynechán, pak je výchozí přesnost definována vlastností NumberFormatInfo.CurrencyDecimalDigits.
Jestliže hodnota formátování obsahuje více než zadaná nebo výchozí počet desetinných míst, získáme hodnotu zaokrouhleno výsledný řetězec. Pokud je hodnota vpravo počet desetinných míst zadaný 5 nebo vyšší, poslední číslice řetězce výsledek zaokrouhleno směrem od nuly.
Na výsledný řetězec má vliv informace o formátování aktuálního objektu NumberFormatInfo. V následující tabulce jsou uvedeny vlastnosti NumberFormatInfo, které řídí formátování vráceného řetězce.
Vlastnost NumberFormatInfo |
Popis |
---|---|
Definuje umístění symbolu měny pro kladné hodnoty. |
|
Určuje umístění symbolu měny pro záporné hodnoty a určuje, zda je záporné znaménko představováno závorkami nebo vlastností NegativeSign. |
|
Definuje záporné znaménko, které je použito, pokud CurrencyNegativePattern označuje, že nejsou použity závorky. |
|
Definuje symbol měny. |
|
Definuje výchozí počet desítkových číslic v hodnotě měny. Tuto hodnotu lze přepsat pomocí specifikátoru přesnosti. |
|
Definuje řetězec, který odděluje integrální a desítkové číslice. |
|
Určuje řetězec, který odděluje skupiny integrálních čísel. |
|
Definuje počet integrálních číslic, které se zobrazují ve skupině. |
Následující příklad formátuje hodnotu Double s měnovým specifikátorem formátu.
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture))
Console.WriteLine(value.ToString("C3", CultureInfo.CurrentCulture))
Console.WriteLine(value.ToString("C3", _
CultureInfo.CreateSpecificCulture("da-DK")))
' The example displays the following output on a system whose
' current culture is English (United States):
' $12,345.68
' $12,345.679
' kr 12.345,679
double value = 12345.6789;
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture));
Console.WriteLine(value.ToString("C3", CultureInfo.CurrentCulture));
Console.WriteLine(value.ToString("C3",
CultureInfo.CreateSpecificCulture("da-DK")));
// The example displays the following output on a system whose
// current culture is English (United States):
// $12,345.68
// $12,345.679
// kr 12.345,679
Zpět na tabulku
Specifikátor formátu desítkového čísla D
Specifikátor formátu D (nebo desítkového čísla) 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. Pokud je to požadováno, číslo je doplněno nulami po své levé straně k produkování počtu číslic, který je dán specifikátorem přesnosti. Pokud není zadán žádný specifikátor přesnosti, výchozí hodnotou je minimální hodnota požadována celým číslem, bez počáteční nuly.
Na výsledný řetězec má vliv informace o formátování aktuálního objektu NumberFormatInfo. Jak ukazuje následující tabulka, jediná vlastnost ovlivňuje formátování výsledného řetězce.
Vlastnost NumberFormatInfo |
Popis |
---|---|
Určuje řetězec, který označuje, že je číslo záporné. |
Následující příklad formátuje hodnotu Int32 s desítkovým specifikátorem formátu.
Dim value As Integer
value = 12345
Console.WriteLine(value.ToString("D"))
' Displays 12345
Console.WriteLine(value.ToString("D8"))
' Displays 00012345
value = -12345
Console.WriteLine(value.ToString("D"))
' Displays -12345
Console.WriteLine(value.ToString("D8"))
' Displays -00012345
int value;
value = 12345;
Console.WriteLine(value.ToString("D"));
// Displays 12345
Console.WriteLine(value.ToString("D8"));
// Displays 00012345
value = -12345;
Console.WriteLine(value.ToString("D"));
// Displays -12345
Console.WriteLine(value.ToString("D8"));
// Displays -00012345
Zpět na tabulku
Exponenciální specifikátor 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 číslice (0-9). Řetězec začíná se symbolem mínus, pokud je číslo záporné. Přesně jedna číslice vždy předchází desetinné čárce.
Specifikátor přesnosti označuje požadovaný počet číslic za desetinnou čárkou. Pokud je specifikátor přesnosti vynechán, výchozích šest číslic je použito za desetinnou čárkou.
Velikost specifikátoru formátu označuje, zda má použít před exponentem předponu E nebo e. Exponent se vždy skládá ze znaménka plus nebo mínus a minimálně tří číslic. Pokud je požadováno, exponent je doplněn nulami pro splnění tohoto minima.
Na výsledný řetězec má vliv informace o formátování aktuálního objektu NumberFormatInfo. V následující tabulce jsou uvedeny vlastnosti NumberFormatInfo, které řídí formátování vráceného řetězce.
Vlastnost NumberFormatInfo |
Popis |
---|---|
Definuje řetězec, který označuje, že je číslo záporné pro jak koeficient, tak exponent. |
|
Určuje řetězec, který odděluje integrální číslice od desítkových číslic v koeficientu. |
|
Určuje řetězec, který označuje, že je exponent kladný. |
Následující příklad formátuje hodnotu Double s exponenciálním specifikátorem formátu.
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture))
' Displays 1.234568E+004
Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture))
' Displays 1.2345678900E+004
Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture))
' Displays 1.2346e+004
Console.WriteLine(value.ToString("E", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 1,234568E+004
double value = 12345.6789;
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture));
// Displays 1.234568E+004
Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture));
// Displays 1.2345678900E+004
Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture));
// Displays 1.2346e+004
Console.WriteLine(value.ToString("E",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 1,234568E+004
Zpět na tabulku
Specifikátor formátu s pevnou desetinnou čárkou F
Specifikátor formátu s pevnou desetinnou čárkou F převede číslo na řetězec ve formátu -ddd.ddd… , kde každé d označuje číslice (0-9). Řetězec začíná se symbolem mínus, pokud je číslo záporné.
Specifikátor přesnosti označuje požadovaný počet desetinných míst. Pokud je vynechán specifikátor přesnosti, pak současná vlastnost NumberFormatInfo.NumberDecimalDigits dodává číselnou přesnost.
Na výsledný řetězec má vliv informace o formátování aktuálního objektu NumberFormatInfo. V následující tabulce jsou uvedeny vlastnosti objektu NumberFormatInfo, které řídí formátování výsledného řetězce.
Vlastnost NumberFormatInfo |
Popis |
---|---|
Určuje řetězec, který označuje, že je číslo záporné. |
|
Definuje řetězec, který odděluje integrální číslice od desítkových číslic. |
|
Definuje výchozí počet desítkových číslic. Tuto hodnota lze přepsat pomocí specifikátoru přesnosti. |
Následující příklad formátuje hodnotu Double a Int32 se specifikátorem formátu s pevnou desetinnou čárkou.
Dim integerNumber As Integer
integerNumber = 17843
Console.WriteLine(integerNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 17843.00
integerNumber = -29541
Console.WriteLine(integerNumber.ToString("F3", CultureInfo.InvariantCulture))
' Displays -29541.000
Dim doubleNumber As Double
doubleNumber = 18934.1879
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 18934.19
Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture))
' Displays 18934
doubleNumber = -1898300.1987
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture))
' Displays -1898300.2
Console.WriteLine(doubleNumber.ToString("F3", _
CultureInfo.CreateSpecificCulture("es-ES")))
' Displays -1898300,199
int integerNumber;
integerNumber = 17843;
Console.WriteLine(integerNumber.ToString("F",
CultureInfo.InvariantCulture));
// Displays 17843.00
integerNumber = -29541;
Console.WriteLine(integerNumber.ToString("F3",
CultureInfo.InvariantCulture));
// Displays -29541.000
double doubleNumber;
doubleNumber = 18934.1879;
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture));
// Displays 18934.19
Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture));
// Displays 18934
doubleNumber = -1898300.1987;
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture));
// Displays -1898300.2
Console.WriteLine(doubleNumber.ToString("F3",
CultureInfo.CreateSpecificCulture("es-ES")));
// Displays -1898300,199
Zpět na tabulku
Obecný specifikátor formátu G
Obecný specifikátor formátu G převede číslo na nejvíce kompaktní z buď formátu pevné desetinné čárky, nebo vědeckého zápisu, v závislosti na typu čísla a zda je k dispozici specifikátor přesnosti. Specifikátor přesnosti definuje maximální počet platných číslic, které se mohou objevit ve výsledném řetězci. Pokud je specifikátor přesnosti vynechán, nebo je nulový, pak typ čísla určuje výchozí přesnost, jak je uvedeno v následující tabulce.
Číselný typ |
Výchozí přesnost |
---|---|
3 číslic |
|
5 číslic |
|
10 číslic |
|
19 číslic |
|
20 číslic |
|
29 číslic |
|
7 číslic |
|
15 číslic |
|
29 číslic |
Zápis s pevnou desetinnou čárkou se používá v případě, že exponent, který by byl výsledkem z vyjádření čísla ve vědeckém zápisu, je větší než -5 a menší než specifikátor přesnosti. Jinak je použit vědecký zápis. Výsledek obsahuje desetinnou čárku, pokud je vyžadována, a přebytečné 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 je přebytek koncových číslic odebrán zaokrouhlením.
Pokud je však číslo Decimal a specifikátor přesnosti je vynechán, pak je vždy použit zápis s desetinnou čárkou a přebytečné nuly jsou zachovány.
Pokud je použit vědecký zápis, pak je předponou před exponentem ve výsledku E, pokud je specifikátor formátu G, nebo e, pokud je 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 produkován exponenciálním specifikátorem formátu, což zahrnuje minimálně tři číslice v exponentu.
Na výsledný řetězec má vliv informace o formátování aktuálního objektu NumberFormatInfo. V následující tabulce jsou uvedeny vlastnosti NumberFormatInfo, které řídí formátování výsledného řetězce.
Vlastnost NumberFormatInfo |
Popis |
---|---|
Určuje řetězec, který označuje, že je číslo záporné. |
|
Definuje řetězec, který odděluje integrální číslice od desítkových číslic. |
|
Definuje výchozí počet desítkových číslic. Tuto hodnota lze přepsat pomocí specifikátoru přesnosti. |
|
Určuje řetězec, který označuje, že je exponent kladný. |
Následující příklad formátuje různé hodnoty s plovoucí desetinnou čárkou s obecným specifikátorem formátu.
Dim number As Double
number = 12345.6789
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 12345.6789
Console.WriteLine(number.ToString("G", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 12345,6789
Console.WriteLine(number.ToString("G7", CultureInfo.InvariantCulture))
' Displays 12345.68
number = .0000023
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 2.3E-06
Console.WriteLine(number.ToString("G", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 2,3E-06
number = .0023
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 0.0023
number = 1234
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture))
' Displays 1.2E+03
number = Math.Pi
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture))
' Displays 3.1416
double number;
number = 12345.6789;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 12345.6789
Console.WriteLine(number.ToString("G",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 12345,6789
Console.WriteLine(number.ToString("G7", CultureInfo.InvariantCulture));
// Displays 12345.68
number = .0000023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 2.3E-06
Console.WriteLine(number.ToString("G",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 2,3E-06
number = .0023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 0.0023
number = 1234;
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture));
// Displays 1.2E+03
number = Math.PI;
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture));
// Displays 3.1416
Zpět na tabulku
Číselný specifikátor formátu N
Číselný specifikátor formátu N převede číslo na řetězec ve formě -d,ddd,ddd.ddd…, kde - označuje symbol záporného čísla, pokud je 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. Vynechání specifikátor přesnost je definována aktuální počet desetinných míst NumberFormatInfo.NumberDecimalDigits vlastnost.
Na výsledný řetězec má vliv informace o formátování aktuálního objektu NumberFormatInfo. V následující tabulce jsou uvedeny vlastnosti NumberFormatInfo, které řídí formátování výsledného řetězce.
Vlastnost NumberFormatInfo |
Popis |
---|---|
Určuje řetězec, který označuje, že je číslo záporné. |
|
Definuje formát záporných hodnot a určuje, zda je záporné znaménko představováno závorkami nebo vlastností NegativeSign. |
|
Definuje počet integrálních číslic zobrazených mezi oddělovači skupin. |
|
Určuje řetězec, který odděluje skupiny integrálních čísel. |
|
Definuje řetězec, který odděluje integrální a desítkové číslice. |
|
Definuje výchozí počet desítkových číslic. Tuto hodnota lze přepsat pomocí specifikátoru přesnosti. |
Následující příklad formátuje různé hodnoty s plovoucí desetinnou čárkou s číselným specifikátorem formátu.
Dim dblValue As Double = -12445.6789
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture))
' Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1", _
CultureInfo.CreateSpecificCulture("sv-SE")))
' Displays -12 445,7
Dim intValue As Integer = 123456789
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture))
' Displays 123,456,789.0
double dblValue = -12445.6789;
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture));
// Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1",
CultureInfo.CreateSpecificCulture("sv-SE")));
// Displays -12 445,7
int intValue = 123456789;
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture));
// Displays 123,456,789.0
Zpět na tabulku
Procentuální specifikátor formátu P
Procentuální specifikátor 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 je specifikátor přesnosti vynechán, je použita výchozí číselná přesnost poskytnutá aktuální vlastností PercentDecimalDigits.
V následující tabulce jsou uvedeny vlastnosti NumberFormatInfo, které řídí formátování vráceného řetězce.
Vlastnost NumberFormatInfo |
Popis |
---|---|
Definuje umístění symbolu procenta pro kladné hodnoty. |
|
Definuje umístění symbolu procenta a záporný symbol pro záporné hodnoty. |
|
Určuje řetězec, který označuje, že je číslo záporné. |
|
Určuje symbol procenta. |
|
Definuje výchozí počet desetinných míst v procentuální hodnotě. Tuto hodnota lze přepsat pomocí specifikátoru přesnosti. |
|
Definuje řetězec, který odděluje integrální a desítkové číslice. |
|
Určuje řetězec, který odděluje skupiny integrálních čísel. |
|
Definuje počet integrálních číslic, které se zobrazují ve skupině. |
Následující příklad formátuje různé hodnoty s plovoucí desetinnou čárkou s procentuálním specifikátorem formátu.
Dim number As Double = .2468013
Console.WriteLine(number.ToString("P", CultureInfo.InvariantCulture))
' Displays 24.68 %
Console.WriteLine(number.ToString("P", _
CultureInfo.CreateSpecificCulture("hr-HR")))
' Displays 24,68%
Console.WriteLine(number.ToString("P1", CultureInfo.InvariantCulture))
' Displays 24.7 %
double number = .2468013;
Console.WriteLine(number.ToString("P", CultureInfo.InvariantCulture));
// Displays 24.68 %
Console.WriteLine(number.ToString("P",
CultureInfo.CreateSpecificCulture("hr-HR")));
// Displays 24,68%
Console.WriteLine(number.ToString("P1", CultureInfo.InvariantCulture));
// Displays 24.7 %
Zpět na tabulku
Specifikátor formátu Round-trip R
Specifikátor formátu round-trip R zaručuje, že číselná hodnota, která je převedena na řetězec, bude analyzována zpět do stejné číselné hodnoty. Tento formát je podporován pouze pro typy Single, Double a BigInteger.
Pokud je formátována hodnota BigInteger s použitím tohoto specifikátoru, její řetězcová reprezetace obsahuje všechny významné číslice v hodnotě BigInteger. Pokud je formátována hodnota Single nebo Double s použitím tohoto specifikátoru, je nejprve testována pomocí obecného formátu, s 15 číslicemi přesnosti pro Double a 7 číslicemi přesnosti pro Single. Pokud je hodnota úspěšně analyzována zpět na stejnou číselnou hodnotu, je naformátována pomocí obecného specifikátoru formátu. Pokud není hodnota úspěšně analyzována zpět na stejnou číselnou hodnotu, je naformátována pomocí 17 číslic přesnosti pro Double a 9 číslicemi přesnosti pro Single.
Ačkoliv můžete zahrnout specifikátor přesnosti, je ignorován. Při použití tohoto specifikátoru mají operace round trip dané priority nad přesností.
Na výsledný řetězec má vliv informace o formátování aktuálního objektu NumberFormatInfo. V následující tabulce jsou uvedeny vlastnosti NumberFormatInfo, které řídí formátování výsledného řetězce.
Vlastnost NumberFormatInfo |
Popis |
---|---|
Určuje řetězec, který označuje, že je číslo záporné. |
|
Definuje řetězec, který odděluje integrální číslice od desítkových číslic. |
|
Určuje řetězec, který označuje, že je exponent kladný. |
Následující příklad formátuje hodnoty Double se specifikátorem formátu round-trip.
Dim value As Double
value = Math.Pi
Console.WriteLine(value.ToString("r"))
' Displays 3.1415926535897931
Console.WriteLine(value.ToString("r", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 3,1415926535897931
value = 1.623e-21
Console.WriteLine(value.ToString("r"))
' Displays 1.623E-21
double value;
value = Math.PI;
Console.WriteLine(value.ToString("r"));
// Displays 3.1415926535897931
Console.WriteLine(value.ToString("r",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 3,1415926535897931
value = 1.623e-21;
Console.WriteLine(value.ToString("r"));
// Displays 1.623E-21
Zpět na tabulku
Šestnáctkový specifikátor formátu X
Šestnáctkový specifikátor formátu X převede číslo na řetězec šestnáctkových číslic. Velikost specifikátoru formátu označuje, zda používat velká písmena nebo malá písmena pro šestnáctkové číslice, které jsou větší než 9. Použijte například X k vytvoření ABCDEF, a x k vytvoření abcdef. 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. Pokud je to požadováno, číslo je doplněno nulami po své levé straně k výrobě počtu číslic, který je dán specifikátorem přesnosti.
Na výsledný řetězec nemá vliv informace o formátování aktuálního objektu NumberFormatInfo.
Následující příklad formátuje hodnoty Int32 s šestnáctkovým specifikátorem formátu.
Dim value As Integer
value = &h2045e
Console.WriteLine(value.ToString("x"))
' Displays 2045e
Console.WriteLine(value.ToString("X"))
' Displays 2045E
Console.WriteLine(value.ToString("X8"))
' Displays 0002045E
value = 123456789
Console.WriteLine(value.ToString("X"))
' Displays 75BCD15
Console.WriteLine(value.ToString("X2"))
' Displays 75BCD15
int value;
value = 0x2045e;
Console.WriteLine(value.ToString("x"));
// Displays 2045e
Console.WriteLine(value.ToString("X"));
// Displays 2045E
Console.WriteLine(value.ToString("X8"));
// Displays 0002045E
value = 123456789;
Console.WriteLine(value.ToString("X"));
// Displays 75BCD15
Console.WriteLine(value.ToString("X2"));
// Displays 75BCD15
Zpět na tabulku
Poznámky
Nastavení ovládací panelů
Nastavení v položce Místní a jazykové nastavení v Ovládacích panelech ovlivní výsledný řetězec vytvořený při operaci formátování. Tato nastavení slouží k inicializaci objektu NumberFormatInfo přidruženého k aktuální jazykové verzi vlákna, které poskytuje hodnoty použité k řízení formátování. Počítače, které používají různá nastavení generují různé výsledné řetězce.
Kromě toho, pokud použijete konstruktor CultureInfo.CultureInfo(String) pro vytvoření instance nového objektu CultureInfo představujícího stejnou jazykovou verzi jako je aktuální jazyková verze systému, jakékoli vlastní nastavení z položky Místní a jazykové nastavení v Ovládacích panelech budou použita pro nový objekt CultureInfo. Můžete použít konstruktor CultureInfo.CultureInfo(String, Boolean) pro vytvoření objektu CultureInfo, který nereflektuje vlastní nastavení systému.
Vlastnosti NumberFormatInfo
Formátování je ovlivněno vlastnostmi aktuálního objektu NumberFormatInfo, který je poskytnut implicitně aktuální jazykovou verzí vlákna nebo explicitně parametrem IFormatProvider metody, která vyvolá formátování. Určete objekt NumberFormatInfo nebo CultureInfo pro tento parametr.
Integrální typy čísel a typy s plovoucí desetinnou čárkou
Některé popisy standardních číselných specifikátorů formátu odkazují na itegrální číselné typy nebo typy s plovoucí desetinnou čárkou. Integrální číselné typy jsou Byte, SByte, Int16, Int32, Int64, UInt16, UInt32, UInt64 a BigInteger. Číselné typy s plovoucí desetinnou čárkou jsou Decimal, Single a Double.
Nekonečno s plovoucí desetinnou čárkou a výraz Není číslo
Bez ohledu na formátovací řetězec, pokud je hodnota typu s plovoucí desetinnou čárkou Single nebo Double kladné nekonečno, záporné nekonečno nebo není číslo (NaN), formátovaný řetězec je hodnotou příslušné vlastnosti PositiveInfinitySymbol, NegativeInfinitySymbol nebo NaNSymbol zadané pomocí aktuálního použitého objektu NumberFormatInfo.
Příklad
Následující příklad formátuje číselnou integrální hodnotu a hodnotu s plovoucí desetinnou čárkou pomocí jazykové verze en-US a všemi standardními číselnými specifikátory formátu. Tento příklad používá dva konkrétní číselné typy (Double a Int32), ale produkoval by podobné výsledky pro každý z dalších číselných základních typů (Byte, SByte, Int16, Int32, Int64, UInt16, UInt32, UInt64, BigInteger, Decimal, a Single).
Option Strict On
Imports System.Globalization
Imports System.Threading
Module NumericFormats
Public Sub Main()
' Display string representations of numbers for en-us culture
Dim ci As New CultureInfo("en-us")
' Output floating point values
Dim floating As Double = 10761.937554
Console.WriteLine("C: {0}", _
floating.ToString("C", ci)) ' Displays "C: $10,761.94"
Console.WriteLine("E: {0}", _
floating.ToString("E03", ci)) ' Displays "E: 1.076E+004"
Console.WriteLine("F: {0}", _
floating.ToString("F04", ci)) ' Displays "F: 10761.9376"
Console.WriteLine("G: {0}", _
floating.ToString("G", ci)) ' Displays "G: 10761.937554"
Console.WriteLine("N: {0}", _
floating.ToString("N03", ci)) ' Displays "N: 10,761.938"
Console.WriteLine("P: {0}", _
(floating/10000).ToString("P02", ci)) ' Displays "P: 107.62 %"
Console.WriteLine("R: {0}", _
floating.ToString("R", ci)) ' Displays "R: 10761.937554"
Console.WriteLine()
' Output integral values
Dim integral As Integer = 8395
Console.WriteLine("C: {0}", _
integral.ToString("C", ci)) ' Displays "C: $8,395.00"
Console.WriteLine("D: {0}", _
integral.ToString("D6")) ' Displays "D: 008395"
Console.WriteLine("E: {0}", _
integral.ToString("E03", ci)) ' Displays "E: 8.395E+003"
Console.WriteLine("F: {0}", _
integral.ToString("F01", ci)) ' Displays "F: 8395.0"
Console.WriteLine("G: {0}", _
integral.ToString("G", ci)) ' Displays "G: 8395"
Console.WriteLine("N: {0}", _
integral.ToString("N01", ci)) ' Displays "N: 8,395.0"
Console.WriteLine("P: {0}", _
(integral/10000).ToString("P02", ci)) ' Displays "P: 83.95 %"
Console.WriteLine("X: 0x{0}", _
integral.ToString("X", ci)) ' Displays "X: 0x20CB"
Console.WriteLine()
End Sub
End Module
using System;
using System.Globalization;
using System.Threading;
public class NumericFormats
{
public static void Main()
{
// Display string representations of numbers for en-us culture
CultureInfo ci = new CultureInfo("en-us");
// Output floating point values
double floating = 10761.937554;
Console.WriteLine("C: {0}",
floating.ToString("C", ci)); // Displays "C: $10,761.94"
Console.WriteLine("E: {0}",
floating.ToString("E03", ci)); // Displays "E: 1.076E+004"
Console.WriteLine("F: {0}",
floating.ToString("F04", ci)); // Displays "F: 10761.9376"
Console.WriteLine("G: {0}",
floating.ToString("G", ci)); // Displays "G: 10761.937554"
Console.WriteLine("N: {0}",
floating.ToString("N03", ci)); // Displays "N: 10,761.938"
Console.WriteLine("P: {0}",
(floating/10000).ToString("P02", ci)); // Displays "P: 107.62 %"
Console.WriteLine("R: {0}",
floating.ToString("R", ci)); // Displays "R: 10761.937554"
Console.WriteLine();
// Output integral values
int integral = 8395;
Console.WriteLine("C: {0}",
integral.ToString("C", ci)); // Displays "C: $8,395.00"
Console.WriteLine("D: {0}",
integral.ToString("D6", ci)); // Displays "D: 008395"
Console.WriteLine("E: {0}",
integral.ToString("E03", ci)); // Displays "E: 8.395E+003"
Console.WriteLine("F: {0}",
integral.ToString("F01", ci)); // Displays "F: 8395.0"
Console.WriteLine("G: {0}",
integral.ToString("G", ci)); // Displays "G: 8395"
Console.WriteLine("N: {0}",
integral.ToString("N01", ci)); // Displays "N: 8,395.0"
Console.WriteLine("P: {0}",
(integral/10000.0).ToString("P02", ci)); // Displays "P: 83.95 %"
Console.WriteLine("X: 0x{0}",
integral.ToString("X", ci)); // Displays "X: 0x20CB"
Console.WriteLine();
}
}
Viz také
Úkoly
Postupy: Doplnit číslo úvodními nulami
Odkaz
Koncepty
Vlastní číselné formátovací řetězce
Historie změn
Datum |
Poslední dokumenty |
Důvod |
---|---|---|
Březen 2011 |
Přidat odkaz do formátu nástroje. |
Rozšíření informace |
Červenec 2010 |
Poznamenat, že se používá zaokrouhlení směrem od nuly, s "C" standardní formát řetězce. |
Názory zákazníků |