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ů. Řetězec standardního číselného formátu má tvar [format specifier][precision specifier]
, kde:
Specifikátor formátu je jeden abecední znak, který určuje typ formátu čísla, například měna nebo procenta. 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. V .NET 7 a novějších verzích je maximální hodnota přesnosti 999 999 999. V .NET 6 je Int32.MaxValuemaximální hodnota přesnosti . V předchozích verzích rozhraní .NET může být přesnost v rozsahu od 0 do 99. Specifikátor přesnosti řídí počet číslic v řetězcovém vyjádření čísla. Neprovádí zaokrouhlení samotného čísla. K provedení operace zaokrouhlení použijte metodu Math.Ceiling, Math.Floornebo Math.Round .
Když specifikátor přesnosti řídí počet desetinných míst ve výsledném řetězci, výsledný řetězec odráží číslo, které je zaokrouhleno na reprezentovatelný výsledek nejblíže k nekonečně přesnému výsledku. Pokud existují dva stejně podobné reprezentovatelné výsledky:
- V .NET Framework a .NET Core až do .NET Core 2.0 modul runtime vybere výsledek s větší nejméně významnou číslicí (tj. pomocí MidpointRounding.AwayFromZero).
- V .NET Core 2.1 a novějším modulu runtime vybere výsledek s nejméně významnou číslicí (tj. pomocí MidpointRounding.ToEven).
Poznámka
Specifikátor přesnosti určuje počet číslic ve výsledném řetězci. Pokud chcete výsledný řetězec vložit úvodními nebo koncovými mezerami, použijte funkci složeného formátování a definujte komponentu zarovnání v položce formátu.
Standardní řetězce číselného formátu podporují:
Některé přetížení
ToString
metody všech číselných typů. Můžete například zadat řetězec číselného formátu metodám Int32.ToString(String) a Int32.ToString(String, IFormatProvider) .Metoda
TryFormat
všech číselných typů, Int32.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider) například a Single.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider).Složené formátování .NET, kterou používají některé
Write
metody Console aWriteLine
tříd a StreamWriter , String.Format metoda a StringBuilder.AppendFormat metoda. Funkce složeného formátu umožňuje zahrnout řetězcovou reprezentaci více datových položek v jednom řetězci, určit šířku pole a zarovnat čísla v poli. Další informace najdete v tématu Složené formátování.Interpolované řetězce v jazyce C# a Visual Basic, které poskytují zjednodušenou syntaxi ve srovnání s řetězci složeného formátu.
Tip
Můžete si stáhnout formátovací nástroj, aplikaci .NET Core model Windows Forms, která umožňuje použít formátovací řetězce na číselné hodnoty nebo hodnoty data a času a zobrazit výsledný řetězec. Zdrojový kód je k dispozici pro C# a Visual Basic.
Standardní specifikátory formátu
Následující tabulka popisuje standardní specifikátory číselného formátu a zobrazuje ukázkový výstup vytvořený jednotlivými specifikátory formátu. Další informace o použití řetězců standardního číselného formátu najdete v části Poznámky a v části Code example (Příklad kódu ) najdete ucelenou ilustraci jejich použití.
Výsledek formátovaného řetězce pro konkrétní jazykovou verzi se může od následujících příkladů lišit. Formát může mít vliv na nastavení operačního systému, uživatelská nastavení, proměnné prostředí a verze rozhraní .NET, kterou používáte. Například počínaje platformou .NET 5 se rozhraní .NET snaží sjednotit kulturní formáty napříč platformami. Další informace najdete v tématu Globalizace .NET a ICU.
Specifikátor formátu | Název | Popis | Příklady |
---|---|---|---|
"B" nebo "b" | Binární | Výsledek: Binární řetězec. Podporováno: Pouze integrální typy (.NET 8+). Specifikátor přesnosti: počet číslic ve výsledném řetězci. Další informace: Specifikátor binárního formátu ("B"). |
42 ("B") -> 101010 255 ("b16") -> 0000000011111111 |
"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: Definuje .NumberFormatInfo.CurrencyDecimalDigits 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" | Decimal | 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 exponenciálního formátu ("E") |
1052.0329112756 ("E", cs-CZ) -> 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: Definováno nástrojem NumberFormatInfo.NumberDecimalDigits. Další informace: Specifikátor formátu Fixed-Point (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ápis s pevným nebo vědeckým zápisem. 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 obecného 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 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: Definováno nástrojem NumberFormatInfo.NumberDecimalDigits. Další informace: Specifikátor čí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" | Procento | 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: Definováno nástrojem NumberFormatInfo.PercentDecimalDigits. 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" | Zpáteční převod | Výsledek: řetězec, který může použít operaci zpátečního převodu na stejné číslo. Podporováno: Single, Doublea BigInteger. Poznámka: Doporučeno pouze pro typ BigInteger . Pro Double typy použijte "G17"; pro Single typy použijte "G9". Specifikátor přesnosti: ignorováno. Další informace: Specifikátor formátu odezvy (R). |
123456789.12345678 ("R") -> 123456789.12345678 -1234567890.12345678 ("R") -> -1234567890.1234567 |
"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 FormatException za běhu. |
Použití řetězců standardního číselného formátu
Poznámka
Příklady jazyka C# v tomto článku se spouští ve Try.NET vložené runner kódu a v testovacím prostředí. Výběrem tlačítka Spustit spusťte příklad v interaktivním okně. Jakmile spustíte kód, můžete ho upravit a spustit upravený kód tak, že znovu vyberete Spustit . Upravený kód se buď spustí v interaktivním okně, nebo pokud kompilace selže, zobrazí se v interaktivním okně všechny chybové zprávy kompilátoru jazyka C#.
Řetězec standardního číselného formátu lze použít k definování formátování číselné hodnoty jedním z následujících způsobů:
Může být předán metodě
TryFormat
nebo přetíženíToString
metody, která máformat
parametr. Následující příklad formátuje číselnou hodnotu jako řetězec měny v aktuální jazykové verzi (v tomto případě jazykovou verzi en-US).Decimal value = static_cast<Decimal>(123.456); Console::WriteLine(value.ToString("C2")); // Displays $123.46
decimal value = 123.456m; Console.WriteLine(value.ToString("C2")); // Displays $123.46
Dim value As Decimal = 123.456d Console.WriteLine(value.ToString("C2")) ' Displays $123.46
Lze ji zadat jako
formatString
argument v položce formátu, která se používá s metodami, jako String.Formatjsou , Console.WriteLinea StringBuilder.AppendFormat. Další informace najdete v tématu Složené formátování. Následující příklad používá položku formátu pro vložení hodnoty měny do řetězce.Decimal value = static_cast<Decimal>(123.456); 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."
Dim value As Decimal = 123.456d Console.WriteLine("Your account balance is {0:C2}.", value) ' Displays "Your account balance is $123.46."
Volitelně můžete zadat
alignment
argument pro určení šířky číselného pole a toho, jestli je jeho hodnota zarovnaná doprava nebo doleva. Následující příklad zarovná hodnotu měny doleva na pole o 28 znacích a hodnotu měny do pole o 14 znacích zarovná doprava.array<Decimal>^ amounts = { static_cast<Decimal>(16305.32), static_cast<Decimal>(18794.16) }; Console::WriteLine(" Beginning Balance Ending Balance"); Console::WriteLine(" {0,-28:C2}{1,14:C2}", amounts[0], amounts[1]); // Displays: // Beginning Balance Ending Balance // $16,305.32 $18,794.16
decimal[] amounts = { 16305.32m, 18794.16m }; Console.WriteLine(" Beginning Balance Ending Balance"); Console.WriteLine(" {0,-28:C2}{1,14:C2}", amounts[0], amounts[1]); // Displays: // Beginning Balance Ending Balance // $16,305.32 $18,794.16
Dim amounts() As Decimal = {16305.32d, 18794.16d} Console.WriteLine(" Beginning Balance Ending Balance") Console.WriteLine(" {0,-28:C2}{1,14:C2}", amounts(0), amounts(1)) ' Displays: ' Beginning Balance Ending Balance ' $16,305.32 $18,794.16
Dá se zadat jako
formatString
argument v interpolované položce výrazu interpolovaného řetězce. Další informace najdete v článku Interpolace řetězců v referenční dokumentaci jazyka C# nebo v článku Interpolované řetězce v referenční dokumentaci jazyka Visual Basic.
Následující oddíly obsahují podrobné informace o jednotlivých řetězcích standardního číselného formátu.
Specifikátor binárního formátu (B)
Specifikátor binárního formátu ("B") převede číslo na řetězec binárních číslic. Tento formát je podporován pouze pro integrální typy a pouze v rozhraní .NET 8 a novějších.
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 informacemi o formátování aktuálního NumberFormatInfo objektu.
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 je specifikátor přesnosti vynechán, výchozí přesnost je definována NumberFormatInfo.CurrencyDecimalDigits vlastností .
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 je ovlivněn informacemi o formátování aktuálního NumberFormatInfo objektu. Následující tabulka uvádí NumberFormatInfo vlastnosti, které řídí formátování vráceného řetězce.
Vlastnost NumberFormatInfo | Description |
---|---|
CurrencyPositivePattern | Definuje umístění symbolu měny pro kladné hodnoty. |
CurrencyNegativePattern | Definuje umístění symbolu měny pro záporné hodnoty a určuje, zda je záporné znaménko reprezentováno závorkou nebo NegativeSign vlastností. |
NegativeSign | Definuje záporné znaménko použité, 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 | Definuje řetězec, který odděluje skupiny integrálních čísel. |
CurrencyGroupSizes | Definuje počet celých číslic, které se zobrazují ve skupině. |
Následující příklad formátuje Double hodnotu se specifikátorem formátu měny:
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
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
// 12.345,679 kr
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
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 je ovlivněn informacemi o formátování aktuálního NumberFormatInfo objektu. Jak znázorňuje následující tabulka, jediná vlastnost ovlivňuje formátování výsledného řetězce.
Vlastnost NumberFormatInfo | Description |
---|---|
NegativeSign | Definuje řetězec, který označuje, že číslo je záporné. |
Následující příklad formátuje Int32 hodnotu se specifikátorem desítkového formátu.
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
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
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
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 je ovlivněn informacemi o formátování aktuálního NumberFormatInfo objektu. Následující tabulka uvádí NumberFormatInfo vlastnosti, které řídí formátování vráceného řetězce.
Vlastnost NumberFormatInfo | Description |
---|---|
NegativeSign | Definuje řetězec, který označuje, že číslo je záporné pro koeficient i pro exponent. |
NumberDecimalSeparator | Definuje řetězec, který odděluje integrální číslice od desítkových číslic v koeficientu. |
PositiveSign | Definuje řetězec, který označuje, že exponent je kladný. |
Následující příklad formátuje Double hodnotu se specifikátorem exponenciálního formátu:
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
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
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
Specifikátor formátu s pevnou čárkou (F)
Specifikátor formátu s pevnou desetinnou čárkou ("F") převede číslo na řetězec ve tvaru "-ddd.ddd..." 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 je specifikátor přesnosti vynechán, NumberFormatInfo.NumberDecimalDigits aktuální vlastnost poskytuje číselnou přesnost.
Výsledný řetězec je ovlivněn informacemi o formátování aktuálního NumberFormatInfo objektu. Následující tabulka uvádí vlastnosti objektu NumberFormatInfo , které řídí formátování výsledného řetězce.
Vlastnost NumberFormatInfo | Description |
---|---|
NegativeSign | Definuje řetězec, který označuje, že číslo je 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 hodnotu lze přepsat pomocí specifikátoru přesnosti. |
Následující příklad formátuje Double a Int32 hodnotu se specifikátorem formátu s pevným bodem:
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
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
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
Specifikátor obecného formátu (G)
Specifikátor obecného formátu ("G") převede číslo na kompaktnější zápis s pevnou desetinou čárkou nebo vědecký zápis v závislosti na typu čísla a na tom, zda je k dispozici 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 nebo SByte | 3 číslice |
Int16 nebo UInt16 | 5 číslic |
Int32 nebo UInt32 | 10 číslic |
Int64 | 19 číslic |
UInt64 | 20 číslic |
BigInteger | Neomezené (stejné jako "R")) |
Half | Nejmenší počet číslic zaokrouhlených zaokrouhlených k reprezentaci čísla |
Single | Nejmenší počet číslic zaokrouhlených zaokrouhlených k reprezentaci čísla (v rozhraní .NET Framework je výchozí hodnota G7) |
Double | Nejmenší počet číslic zaokrouhlených zaokrouhlených k reprezentaci čísla (v rozhraní .NET Framework je výchozí hodnota G15) |
Decimal | Nejmenší počet číslic zaokrouhlených zaokrouhlených k reprezentaci čísla |
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 však číslo a Decimal specifikátor přesnosti je vynechán, vždy se použije notace 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.
Při použití s Double hodnotou specifikátor formátu "G17" zajistí, že se původní Double hodnota úspěšně zaokrouhlí. Je to proto, že Double je číslo s plovoucí desetinou čárkou kompatibilníbinary64
se standardem IEEE 754-2008, které poskytuje až 17 platných číslic přesnosti. V rozhraní .NET Framework doporučujeme místo specifikátoru formátu R použít jeho použití, protože v některých případech se "R" nepodaří úspěšně provést hodnoty dvojité přesnosti s plovoucí desetinou čárkou.
Při použití s Single hodnotou specifikátor formátu "G9" zajistí, že se původní Single hodnota úspěšně zaokrouhlí. Je to proto, že Single je číslo s plovoucí desetinou čárkou kompatibilníbinary32
se standardem IEEE 754-2008, které poskytuje až devět významných číslic přesnosti. Z důvodů výkonu doporučujeme místo specifikátoru formátu R použít jeho použití.
Výsledný řetězec je ovlivněn informacemi o formátování aktuálního NumberFormatInfo objektu. Následující tabulka uvádí NumberFormatInfo vlastnosti, které řídí formátování výsledného řetězce.
Vlastnost NumberFormatInfo | Description |
---|---|
NegativeSign | Definuje řetězec, který označuje, že číslo je záporné. |
NumberDecimalSeparator | Definuje řetězec, který odděluje integrální číslice od desítkových číslic. |
PositiveSign | Definuje řetězec, který označuje, že exponent je kladný. |
Následující příklad formátuje různé hodnoty s plovoucí desetinou čárkou pomocí obecného specifikátoru formátu:
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
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
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
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í NumberFormatInfo.NumberDecimalDigits vlastností.
Výsledný řetězec je ovlivněn informacemi o formátování aktuálního NumberFormatInfo objektu. Následující tabulka uvádí NumberFormatInfo vlastnosti, které řídí formátování výsledného řetězce.
Vlastnost NumberFormatInfo | Description |
---|---|
NegativeSign | Definuje řetězec, který označuje, že číslo je záporné. |
NumberNegativePattern | Definuje formát záporných hodnot a určuje, zda je záporné znaménko reprezentováno závorky nebo NegativeSign vlastností. |
NumberGroupSizes | Definuje počet integrálních číslic zobrazených mezi oddělovači skupin. |
NumberGroupSeparator | Definuje ř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 hodnotu lze přepsat pomocí specifikátoru přesnosti. |
Následující příklad formátuje různé hodnoty s plovoucí desetinou čárkou se specifikátorem formátu čísla:
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
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
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
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 je specifikátor přesnosti vynechán, použije se výchozí číselná přesnost zadaná aktuální PercentDecimalDigits vlastností.
Následující tabulka uvádí NumberFormatInfo vlastnosti, které řídí formátování vráceného řetězce.
Vlastnost NumberFormatInfo | Description |
---|---|
PercentPositivePattern | Definuje umístění symbolu procenta pro kladné hodnoty. |
PercentNegativePattern | Definuje umístění symbolu procenta a záporného symbolu pro záporné hodnoty. |
NegativeSign | Definuje řetězec, který označuje, že číslo je záporné. |
PercentSymbol | Definuje symbol procenta. |
PercentDecimalDigits | Definuje výchozí počet desetinných míst v procentuální hodnotě. Tuto hodnotu lze přepsat pomocí specifikátoru přesnosti. |
PercentDecimalSeparator | Definuje řetězec, který odděluje integrální a desítkové číslice. |
PercentGroupSeparator | Definuje řetězec, který odděluje skupiny integrálních čísel. |
PercentGroupSizes | Definuje počet celých číslic, které se zobrazují ve skupině. |
Následující příklad formátuje hodnoty s plovoucí desetinou čárkou pomocí specifikátoru formátu procent:
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 %
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 %
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 %
Specifikátor formátu zpáteční cesty (R)
Specifikátor formátu R se pokouší zajistit, aby se číselná hodnota převedená na řetězec parsovala zpět na stejnou číselnou hodnotu. Tento formát je podporován pouze pro Halftypy , Single, Doublea BigInteger .
V rozhraní .NET Framework a ve verzích .NET Core starších než 3.0 se specifikátoru formátu R v některých případech nepodaří úspěšně provést hodnoty odezvy Double . Specifikátor formátu R pro obě Double hodnoty a Single nabízí relativně nízký výkon. Místo toho doporučujeme pro hodnoty použít specifikátor Double formátu "G17" a specifikátor formátu "G9" pro úspěšné obnovení Single hodnot.
BigInteger Pokud je hodnota formátována pomocí tohoto specifikátoru, její řetězcová reprezentace obsahuje všechny významné číslice v hodnotěBigInteger.
Ačkoli můžete použít také specifikátor přesnosti, bude ignorován. Pokud použijete tento specifikátor, má zpáteční převod přednost nad přesností. Výsledný řetězec je ovlivněn informacemi o formátování aktuálního NumberFormatInfo objektu. Následující tabulka uvádí NumberFormatInfo vlastnosti, které řídí formátování výsledného řetězce.
Vlastnost NumberFormatInfo | Description |
---|---|
NegativeSign | Definuje řetězec, který označuje, že číslo je záporné. |
NumberDecimalSeparator | Definuje řetězec, který odděluje integrální číslice od desítkových číslic. |
PositiveSign | Definuje řetězec, který označuje, že exponent je kladný. |
Následující příklad formátuje BigInteger hodnotu se specifikátorem formátu odezvy.
#using <System.Numerics.dll>
using namespace System;
using namespace System::Numerics;
void main()
{
BigInteger value = BigInteger::Pow(Int64::MaxValue, 2);
Console::WriteLine(value.ToString("R"));
}
// The example displays the following output:
// 85070591730234615847396907784232501249
using System;
using System.Numerics;
public class Example
{
public static void Main()
{
var value = BigInteger.Pow(Int64.MaxValue, 2);
Console.WriteLine(value.ToString("R"));
}
}
// The example displays the following output:
// 85070591730234615847396907784232501249
Imports System.Numerics
Module Example
Public Sub Main()
Dim value = BigInteger.Pow(Int64.MaxValue, 2)
Console.WriteLine(value.ToString("R"))
End Sub
End Module
' The example displays the following output:
' 85070591730234615847396907784232501249
Důležité
V některých případech Double se hodnoty formátované pomocí řetězce standardního číselného formátu "R" úspěšně nepřerušují, pokud jsou zkompilovány pomocí /platform:x64
přepínačů nebo /platform:anycpu
a běží na 64bitových systémech. Další informace najdete v následujícím odstavci.
Chcete-li obejít problém s hodnotami formátovanými pomocí řetězce standardního číselného Double formátu R, který není úspěšně dokončen, pokud jsou kompilovány pomocí /platform:x64
přepínačů nebo /platform:anycpu
a spuštěny v 64bitových systémech, můžete hodnoty formátovat Double pomocí standardního číselného řetězce "G17". Následující příklad používá řetězec formátu "R" s Double hodnotou, která úspěšně neprovádí odezvu, a také používá řetězec formátu "G17" k úspěšnému zaokrouhlování původní hodnoty:
Console.WriteLine("Attempting to round-trip a Double with 'R':");
double initialValue = 0.6822871999174;
string valueString = initialValue.ToString("R",
CultureInfo.InvariantCulture);
double roundTripped = double.Parse(valueString,
CultureInfo.InvariantCulture);
Console.WriteLine("{0:R} = {1:R}: {2}\n",
initialValue, roundTripped, initialValue.Equals(roundTripped));
Console.WriteLine("Attempting to round-trip a Double with 'G17':");
string valueString17 = initialValue.ToString("G17",
CultureInfo.InvariantCulture);
double roundTripped17 = double.Parse(valueString17,
CultureInfo.InvariantCulture);
Console.WriteLine("{0:R} = {1:R}: {2}\n",
initialValue, roundTripped17, initialValue.Equals(roundTripped17));
// If compiled to an application that targets anycpu or x64 and run on an x64 system,
// the example displays the following output:
// Attempting to round-trip a Double with 'R':
// .NET Framework:
// 0.6822871999174 = 0.68228719991740006: False
// .NET:
// 0.6822871999174 = 0.6822871999174: True
//
// Attempting to round-trip a Double with 'G17':
// 0.6822871999174 = 0.6822871999174: True
Imports System.Globalization
Module Example
Public Sub Main()
Console.WriteLine("Attempting to round-trip a Double with 'R':")
Dim initialValue As Double = 0.6822871999174
Dim valueString As String = initialValue.ToString("R",
CultureInfo.InvariantCulture)
Dim roundTripped As Double = Double.Parse(valueString,
CultureInfo.InvariantCulture)
Console.WriteLine("{0:R} = {1:R}: {2}",
initialValue, roundTripped, initialValue.Equals(roundTripped))
Console.WriteLine()
Console.WriteLine("Attempting to round-trip a Double with 'G17':")
Dim valueString17 As String = initialValue.ToString("G17",
CultureInfo.InvariantCulture)
Dim roundTripped17 As Double = double.Parse(valueString17,
CultureInfo.InvariantCulture)
Console.WriteLine("{0:R} = {1:R}: {2}",
initialValue, roundTripped17, initialValue.Equals(roundTripped17))
End Sub
End Module
' If compiled to an application that targets anycpu or x64 and run on an x64 system,
' the example displays the following output:
' Attempting to round-trip a Double with 'R':
' .NET Framework:
' 0.6822871999174 = 0.68228719991740006: False
' .NET:
' 0.6822871999174 = 0.6822871999174: True
'
' Attempting to round-trip a Double with 'G17':
' 0.6822871999174 = 0.6822871999174: True
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 informacemi o formátování aktuálního NumberFormatInfo objektu.
Následující příklad formátuje Int32 hodnoty se specifikátorem šestnáctkového formátu.
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
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
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
Poznámky
Tato část obsahuje další informace o použití řetězců standardního číselného formátu.
nastavení Ovládací panely
Nastavení v položce Místní a Jazykové možnosti v Ovládací panely ovlivnit výsledný řetězec vytvořený operací formátování. Tato nastavení slouží k inicializaci objektu přidruženého NumberFormatInfo k aktuální jazykové verzi, která poskytuje hodnoty používané k řízení formátování. Počítače, které používají různá nastavení, generují různé výsledné řetězce.
Kromě toho, pokud CultureInfo(String) konstruktor je použit k vytvoření instance nového CultureInfo objektu, který představuje stejnou jazykovou verzi jako aktuální systémová jazyková verze, veškeré přizpůsobení vytvořené místní a jazykové možnosti položka v Ovládací panely budou použity na nový CultureInfo objekt. Konstruktor můžete použít CultureInfo(String, Boolean) k vytvoření objektu CultureInfo , který neodráží vlastní nastavení systému.
Vlastnosti NumberFormatInfo
Formátování je ovlivněno vlastnostmi aktuálního NumberFormatInfo objektu, které jsou implicitně poskytovány aktuální jazykovou verzí nebo explicitně parametrem IFormatProvider metody, která vyvolává formátování. NumberFormatInfo Zadejte objekt nebo CultureInfo pro tento parametr.
Poznámka
Informace o přizpůsobení vzorů nebo řetězců používaných při formátování číselných hodnot najdete v NumberFormatInfo tématu třídy.
Celočíselné typy 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. Celočíselné číselné typy jsou Byte, SByte, Int16, Int32, Int64UInt16, UInt32, , UInt64a BigInteger. Číselné typy s plovoucí desetinou čárkou jsou Decimal, HalfSingle, a Double.
Nekonečnosti s plovoucí desetinnou čárkou a NaN
Bez ohledu na formátovací řetězec platí, že pokud je hodnota Halftypu , Singlenebo Double typu s plovoucí desetinnou čárkou kladné nekonečno, záporné nekonečno nebo ne číslo (NaN), je formátovaný řetězec hodnotou příslušné PositiveInfinitySymbolvlastnosti , NegativeInfinitySymbolnebo NaNSymbol , která je určena aktuálně použitelným NumberFormatInfo objektem.
Příklad kódu
Následující příklad formátuje číselnou integrální hodnotu a hodnotu s plovoucí desetinnou čárkou pomocí jazykové verze en-US a všech specifikátorů standardního číselného formátu. V tomto příkladu se používají dva konkrétní číselné typy (Double a ), ale přinesou by podobné výsledky pro kterýkoli z ostatních číselných základních typů (Byte, SByte, Int16, Int32Int64, UInt16, HalfBigIntegerUInt32UInt64Decimala ).SingleInt32
// 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();
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