Sdílet prostřednictvím


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.

TipTip

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

CurrencyPositivePattern

Definuje umístění symbolu měny pro kladné hodnoty.

CurrencyNegativePattern

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.

NegativeSign

Definuje záporné znaménko, které je použito, pokud CurrencyNegativePattern označuje, že nejsou použity závorky.

CurrencySymbol

Definuje symbol měny.

CurrencyDecimalDigits

Definuje výchozí počet desítkových číslic v hodnotě měny. Tuto hodnotu lze přepsat pomocí specifikátoru přesnosti.

CurrencyDecimalSeparator

Definuje řetězec, který odděluje integrální a desítkové číslice.

CurrencyGroupSeparator

Určuje řetězec, který odděluje skupiny integrálních čísel.

CurrencyGroupSizes

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

NegativeSign

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

NegativeSign

Definuje řetězec, který označuje, že je číslo záporné pro jak koeficient, tak exponent.

NumberDecimalSeparator

Určuje řetězec, který odděluje integrální číslice od desítkových číslic v koeficientu.

PositiveSign

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

NegativeSign

Určuje řetězec, který označuje, že je číslo záporné.

NumberDecimalSeparator

Definuje řetězec, který odděluje integrální číslice od desítkových číslic.

NumberDecimalDigits

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

ByteneboSByte

3 číslic

Int16neboUInt16

5 číslic

Int32neboUInt32

10 číslic

Int64

19 číslic

UInt64

20 číslic

BigInteger

29 číslic

Single

7 číslic

Double

15 číslic

Decimal

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

NegativeSign

Určuje řetězec, který označuje, že je číslo záporné.

NumberDecimalSeparator

Definuje řetězec, který odděluje integrální číslice od desítkových číslic.

NumberDecimalDigits

Definuje výchozí počet desítkových číslic. Tuto hodnota lze přepsat pomocí specifikátoru přesnosti.

PositiveSign

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

NegativeSign

Určuje řetězec, který označuje, že je číslo záporné.

NumberNegativePattern

Definuje formát záporných hodnot a určuje, zda je záporné znaménko představováno závorkami nebo vlastností NegativeSign.

NumberGroupSizes

Definuje počet integrálních číslic zobrazených mezi oddělovači skupin.

NumberGroupSeparator

Určuje řetězec, který odděluje skupiny integrálních čísel.

NumberDecimalSeparator

Definuje řetězec, který odděluje integrální a desítkové číslice.

NumberDecimalDigits

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

PercentPositivePattern

Definuje umístění symbolu procenta pro kladné hodnoty.

PercentNegativePattern

Definuje umístění symbolu procenta a záporný symbol pro záporné hodnoty.

NegativeSign

Určuje řetězec, který označuje, že je číslo záporné.

PercentSymbol

Určuje symbol procenta.

PercentDecimalDigits

Definuje výchozí počet desetinných míst v procentuální hodnotě. Tuto hodnota lze přepsat pomocí specifikátoru přesnosti.

PercentDecimalSeparator

Definuje řetězec, který odděluje integrální a desítkové číslice.

PercentGroupSeparator

Určuje řetězec, který odděluje skupiny integrálních čísel.

PercentGroupSizes

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

NegativeSign

Určuje řetězec, který označuje, že je číslo záporné.

NumberDecimalSeparator

Definuje řetězec, který odděluje integrální číslice od desítkových číslic.

PositiveSign

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

NumberFormatInfo

Koncepty

Vlastní číselné formátovací řetězce

Typy formátování

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ů