Decimal.TryParse Metoda

Definice

Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

Přetížení

TryParse(ReadOnlySpan<Byte>, Decimal)

Pokusí se převést rozsah znaků UTF-8 obsahující řetězcovou reprezentaci čísla na jeho podepsaný desetinný ekvivalent.

TryParse(ReadOnlySpan<Char>, Decimal)

Převede reprezentaci čísla na jeho Decimal ekvivalent pomocí formátu specifického pro jazykovou verzi. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

TryParse(String, Decimal)

Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal)

Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.

TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)

Pokusí se analyzovat rozsah znaků do hodnoty.

TryParse(String, IFormatProvider, Decimal)

Pokusí se analyzovat řetězec do hodnoty.

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Decimal)

Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal)

Převede reprezentaci rozsahu čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

TryParse(String, NumberStyles, IFormatProvider, Decimal)

Převede řetězcovou reprezentaci čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

TryParse(ReadOnlySpan<Byte>, Decimal)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Pokusí se převést rozsah znaků UTF-8 obsahující řetězcovou reprezentaci čísla na jeho podepsaný desetinný ekvivalent.

public static bool TryParse(ReadOnlySpan<byte> utf8Text, out decimal result);

Parametry

utf8Text
ReadOnlySpan<Byte>

Rozsah obsahující znaky UTF-8 představující číslo, které se má převést.

result
Decimal

Pokud tato metoda vrátí, obsahuje podepsanou desetinnou hodnotu odpovídající číslu obsaženému v utf8Text pokud převod proběhl úspěšně, nebo nula, pokud převod selhal. Tento parametr je předán neinicializovaný; jakákoli hodnota původně zadaná ve výsledku se přepíše.

Návraty

true, pokud byl utf8Text úspěšně převeden; jinak false.

Platí pro

.NET 10 a další verze
Produkt Verze
.NET 8, 9, 10

TryParse(ReadOnlySpan<Char>, Decimal)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Převede reprezentaci čísla na jeho Decimal ekvivalent pomocí formátu specifického pro jazykovou verzi. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

public static bool TryParse(ReadOnlySpan<char> s, out decimal result);

Parametry

s
ReadOnlySpan<Char>

Rozsah obsahující znaky představující číslo, které se má převést.

result
Decimal

Pokud tato metoda vrátí, obsahuje Decimal číslo, které je ekvivalentní číselné hodnotě obsažené v s, pokud převod proběhl úspěšně nebo nula v případě selhání převodu. Převod selže, pokud je parametr snull nebo Empty nebo představuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue. Tento parametr se předává uininitialized; jakákoli hodnota původně zadaná v result se přepíše.

Návraty

true, pokud byl s úspěšně převeden; jinak false.

Platí pro

.NET 10 a další verze
Produkt Verze
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Standard 2.1

TryParse(String, Decimal)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

public static bool TryParse(string s, out decimal result);
public static bool TryParse(string? s, out decimal result);

Parametry

s
String

Řetězcové vyjádření čísla, které chcete převést.

result
Decimal

Pokud tato metoda vrátí, obsahuje Decimal číslo, které je ekvivalentní číselné hodnotě obsažené v s, pokud převod proběhl úspěšně nebo nula v případě selhání převodu. Převod selže, pokud je parametr snull nebo Empty, není číslo v platném formátu nebo představuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue. Tento parametr se předává uininitialized; jakákoli hodnota původně zadaná v result se přepíše.

Návraty

true, pokud byl s úspěšně převeden; jinak false.

Příklady

Následující příklad používá metodu Decimal.TryParse(String, Decimal) k převodu řetězcových reprezentací číselných hodnot na Decimal hodnoty. Předpokládá se, že en-US je aktuální jazyková verze.

string value;
decimal number;

// Parse a floating-point value with a thousands separator.
value = "1,643.57";
if (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);

// Parse a floating-point value with a currency symbol and a
// thousands separator.
value = "$1,643.57";
if (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);

// Parse value in exponential notation.
value = "-1.643e6";
if (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);

// Parse a negative integer value.
value = "-1689346178821";
if (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);
// The example displays the following output to the console:
//       1643.57
//       Unable to parse '$1,643.57'.
//       Unable to parse '-1.643e6'.
//       -1689346178821

Poznámky

Toto přetížení se liší od metody Decimal.Parse(String) vrácením logické hodnoty, která označuje, zda byla operace analýzy úspěšná místo vrácení analyzované číselné hodnoty. Eliminuje potřebu použití zpracování výjimek k otestování FormatException v případě, že s je neplatný a nelze jej úspěšně analyzovat.

s parametru obsahuje číslo formuláře:

[ws] [znaménko] [digits,]digits[.fractional-digits][ws]

Prvky v hranatých závorkách ([ a ]) jsou volitelné. Následující tabulka popisuje jednotlivé prvky.

Element Popis
ws Volitelné prázdné znaky.
znaménko Volitelné znaménko.
číslice Posloupnost číslic v rozsahu od 0 do 9
, Symbol oddělovače tisíců specifických pro jazykovou verzi.
. Symbol desetinné čárky specifické pro jazykovou verzi.
desetinné číslice Posloupnost číslic v rozsahu od 0 do 9

s parametru se interpretuje pomocí stylu NumberStyles.Number. To znamená, že jsou povolené prázdné znaky a oddělovače tisíců, ale symboly měny nejsou. Pokud chcete explicitně definovat prvky (například symboly měny, oddělovače tisíců a prázdné znaky), které mohou být přítomné v s, použijte přetížení metody Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal).

Parametr s se parsuje pomocí informací o formátování v objektu NumberFormatInfo inicializovaném pro aktuální jazykovou verzi systému. Další informace najdete v tématu CurrentInfo. K analýze řetězce pomocí informací o formátování některé jiné zadané jazykové verze použijte přetížení metody Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal).

V případě potřeby se hodnota s zaokrouhlí pomocí zaokrouhlení na nejbližší.

Objekt Decimal má 29 číslic přesnosti. Pokud s představuje číslo, které má více než 29 číslic, ale má zlomkovou část a je v rozsahu MaxValue a MinValue, číslo je zaokrouhleno, není zkráceno na 29 číslic pomocí zaokrouhlení na nejbližší.

Pokud během operace analýzy je v parametru s zjištěn oddělovač a platné oddělovače desetinných míst nebo čísel a oddělovačů skupin jsou stejné, operace analýzy předpokládá, že oddělovač je oddělovač desetinných míst místo oddělovače skupiny. Další informace o oddělovači naleznete v tématu CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatora NumberGroupSeparator.

Viz také

Platí pro

.NET 10 a další verze
Produkt Verze
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.

public static bool TryParse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out decimal result);

Parametry

utf8Text
ReadOnlySpan<Byte>

Rozsah znaků UTF-8 pro analýzu.

provider
IFormatProvider

Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o utf8Text.

result
Decimal

Při vrácení obsahuje výsledek úspěšné analýzy utf8Text nebo nedefinovanou hodnotu při selhání.

Návraty

true, pokud se utf8Text úspěšně parsoval; jinak false.

Platí pro

.NET 10 a další verze
Produkt Verze
.NET 8, 9, 10

TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Pokusí se analyzovat rozsah znaků do hodnoty.

public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out decimal result);

Parametry

s
ReadOnlySpan<Char>

Rozsah znaků, které se mají analyzovat.

provider
IFormatProvider

Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o s.

result
Decimal

Pokud tato metoda vrátí, obsahuje výsledek úspěšné analýzy s, nebo nedefinovanou hodnotu při selhání.

Návraty

true, pokud se s úspěšně parsoval; jinak false.

Platí pro

.NET 10 a další verze
Produkt Verze
.NET 7, 8, 9, 10

TryParse(String, IFormatProvider, Decimal)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Pokusí se analyzovat řetězec do hodnoty.

public static bool TryParse(string? s, IFormatProvider? provider, out decimal result);

Parametry

s
String

Řetězec, který se má analyzovat.

provider
IFormatProvider

Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o s.

result
Decimal

Pokud tato metoda vrátí, obsahuje výsledek úspěšné analýzy s nebo nedefinovanou hodnotu při selhání.

Návraty

true, pokud se s úspěšně parsoval; jinak false.

Platí pro

.NET 10 a další verze
Produkt Verze
.NET 7, 8, 9, 10

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Decimal)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.

public static bool TryParse(ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out decimal result);

Parametry

utf8Text
ReadOnlySpan<Byte>

Rozsah znaků UTF-8 pro analýzu.

style
NumberStyles

Bitové kombinace stylů čísel, které mohou být přítomny v utf8Text.

provider
IFormatProvider

Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o utf8Text.

result
Decimal

Při vrácení obsahuje výsledek úspěšné analýzy utf8Text nebo nedefinovanou hodnotu při selhání.

Návraty

true, pokud se utf8Text úspěšně parsoval; jinak false.

Platí pro

.NET 10 a další verze
Produkt Verze
.NET 8, 9, 10

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Převede reprezentaci rozsahu čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out decimal result);
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out decimal result);

Parametry

s
ReadOnlySpan<Char>

Rozsah obsahující znaky představující číslo, které se má převést.

style
NumberStyles

Bitová kombinace hodnot výčtu, která označuje povolený formát s. Typická hodnota pro zadání je Number.

provider
IFormatProvider

Objekt, který poskytuje informace o analýze specifické pro jazykovou verzi o s.

result
Decimal

Pokud tato metoda vrátí, obsahuje Decimal číslo, které je ekvivalentní číselné hodnotě obsažené v s, pokud převod proběhl úspěšně nebo nula v případě selhání převodu. Převod selže, pokud je parametr snull nebo Empty, není číslo ve formátu kompatibilním s stylenebo představuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue. Tento parametr se předává uininitialized; jakákoli hodnota původně zadaná v result se přepíše.

Návraty

true, pokud byl s úspěšně převeden; jinak false.

Platí pro

.NET 10 a další verze
Produkt Verze
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Standard 2.1

TryParse(String, NumberStyles, IFormatProvider, Decimal)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Převede řetězcovou reprezentaci čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

public static bool TryParse(string s, System.Globalization.NumberStyles style, IFormatProvider provider, out decimal result);
public static bool TryParse(string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out decimal result);

Parametry

s
String

Řetězcové vyjádření čísla, které chcete převést.

style
NumberStyles

Bitová kombinace hodnot výčtu, která označuje povolený formát s. Typická hodnota pro zadání je Number.

provider
IFormatProvider

Objekt, který poskytuje informace o analýze specifické pro jazykovou verzi o s.

result
Decimal

Pokud tato metoda vrátí, obsahuje Decimal číslo, které je ekvivalentní číselné hodnotě obsažené v s, pokud převod proběhl úspěšně nebo nula v případě selhání převodu. Převod selže, pokud je parametr snull nebo Empty, není číslo ve formátu kompatibilním s stylenebo představuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue. Tento parametr se předává uininitialized; jakákoli hodnota původně zadaná v result se přepíše.

Návraty

true, pokud byl s úspěšně převeden; jinak false.

Výjimky

style není NumberStyles hodnota.

-nebo-

style je hodnota AllowHexSpecifier.

Příklady

Následující příklad ukazuje použití TryParse(String, NumberStyles, IFormatProvider, Decimal) metoda parsovat řetězcové vyjádření čísla, které má určitý styl a je formátován pomocí konvencí konkrétní jazykové verze.

string value;
NumberStyles style;
CultureInfo culture;
decimal number;

// Parse currency value using en-GB culture.
value = "£1,097.63";
style = NumberStyles.Number | NumberStyles.AllowCurrencySymbol;
culture = CultureInfo.CreateSpecificCulture("en-GB");
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       Converted '£1,097.63' to 1097.63.

value = "1345,978";
style = NumberStyles.AllowDecimalPoint;
culture = CultureInfo.CreateSpecificCulture("fr-FR");
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       Converted '1345,978' to 1345.978.

value = "1.345,978";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands;
culture = CultureInfo.CreateSpecificCulture("es-ES");
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       Converted '1.345,978' to 1345.978.

value = "1 345,978";
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       Unable to convert '1 345,978'.

Poznámky

Toto přetížení se liší od metody Decimal.Parse(String, NumberStyles, IFormatProvider) vrácením logické hodnoty, která označuje, zda byla operace analýzy úspěšná místo vrácení analyzované číselné hodnoty. Eliminuje potřebu použití zpracování výjimek k otestování FormatException v případě, že s je neplatný a nelze jej úspěšně analyzovat.

Parametr style definuje povolený formát parametru s pro úspěšnou operaci analýzy. Musí se jednat o kombinaci bitových příznaků z NumberStyles výčtu. Následující NumberStyles členy nejsou podporovány:

V závislosti na hodnotě stylu může parametr s obsahovat následující prvky:

[ws] [$] [znaménko] [digits,]digits[.fractional-digits][e[sign]digits][ws]

Prvky v hranatých závorkách ([ a ]) jsou volitelné. Následující tabulka popisuje jednotlivé prvky.

Element Popis
ws Volitelné prázdné znaky. Prázdné znaky se můžou objevit na začátku s, pokud style obsahuje příznak NumberStyles.AllowLeadingWhite. Může se zobrazit na konci s, pokud style obsahuje příznak NumberStyles.AllowTrailingWhite.
$ Symbol měny specifický pro jazykovou verzi. Jeho pozice v řetězci je definována NumberFormatInfo.CurrencyNegativePattern nebo NumberFormatInfo.CurrencyPositivePattern vlastnosti NumberFormatInfo objekt vrácený IFormatProvider.GetFormat metodou parametru provider. Symbol měny se může zobrazit v s, pokud style obsahuje příznak NumberStyles.AllowCurrencySymbol.
znaménko Volitelné znaménko.
číslice Posloupnost číslic v rozsahu od 0 do 9
. Symbol desetinné čárky specifické pro jazykovou verzi.
desetinné číslice Posloupnost číslic v rozsahu od 0 do 9

Parametr style určuje povolený formát parametru s a může to být jedna nebo více NumberStyles výčet konstant zkombinovaných pomocí bitové operace OR. Pokud má style hodnotu null, s se interpretuje pomocí stylu NumberStyles.Number.

Parametr provider je IFormatProvider implementace, jako je NumberFormatInfo nebo objekt CultureInfo. Parametr provider poskytuje informace specifické pro jazykovou verzi používané při analýze. Pokud je providernull, použije se aktuální jazyková verze vlákna.

Objekt Decimal má 29 číslic přesnosti. Pokud s představuje číslo, které má více než 29 číslic, ale má zlomkovou část a je v rozsahu MaxValue a MinValue, číslo je zaokrouhleno, není zkráceno na 29 číslic pomocí zaokrouhlení na nejbližší.

Pokud je v parametru s během operace analýzy zjištěn oddělovač a platné oddělovače desetinných míst nebo čísel a oddělovačů skupin jsou stejné, operace analýzy předpokládá, že oddělovač je oddělovač desetinných míst místo oddělovače skupiny. Další informace o oddělovači naleznete v tématu CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatora NumberGroupSeparator.

Viz také

Platí pro

.NET 10 a další verze
Produkt Verze
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0