Sdílet prostřednictvím


Single.TryParse Metoda

Definice

Převede řetězcovou reprezentaci čísla na ekvivalent čísla s plovoucí desetinnou čárkou s jednoduchou přesností. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

Přetížení

Name Description
TryParse(String, IFormatProvider, Single)

Pokusí se analyzovat řetězec do hodnoty.

TryParse(ReadOnlySpan<Char>, Single)

Převede řetězcovou reprezentaci čísla ve znakovém rozsahu na ekvivalent čísla s plovoucí desetinnou čárkou s jednoduchou přesností. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

TryParse(String, Single)

Převede řetězcovou reprezentaci čísla na ekvivalent čísla s plovoucí desetinnou čárkou s jednoduchou přesností. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Single)

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

TryParse(ReadOnlySpan<Char>, IFormatProvider, Single)

Pokusí se analyzovat rozsah znaků do hodnoty.

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

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

TryParse(ReadOnlySpan<Byte>, Single)

Pokusí se převést rozsah znaků UTF-8 obsahující řetězcovou reprezentaci čísla na ekvivalent čísla s plovoucí desetinnou čárkou s jednoduchou přesností.

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

Převede reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na ekvivalent čísla s plovoucí desetinnou čárkou s jednoduchou přesností. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

TryParse(String, NumberStyles, IFormatProvider, Single)

Převede řetězcovou reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na ekvivalent čísla s plovoucí desetinnou čárkou s jednoduchou přesností. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

Poznámky

V .NET Core 3.0 a novějších se hodnoty, které jsou příliš velké, aby představovaly, se zaokrouhlují na PositiveInfinity specifikaci IEEE 754 nebo NegativeInfinity podle potřeby. V předchozích verzích, včetně rozhraní .NET Framework, parsování hodnoty, která byla příliš velká, aby představovala selhání.

TryParse(String, IFormatProvider, Single)

Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs

Pokusí se analyzovat řetězec do hodnoty.

public:
 static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = IParsable<float>::TryParse;
public static bool TryParse(string? s, IFormatProvider? provider, out float result);
static member TryParse : string * IFormatProvider * single -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As Single) As Boolean

Parametry

s
String

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

provider
IFormatProvider

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

result
Single

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

Návraty

true pokud s byl úspěšně analyzován; jinak , false.

Platí pro

TryParse(ReadOnlySpan<Char>, Single)

Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs

Převede řetězcovou reprezentaci čísla ve znakovém rozsahu na ekvivalent čísla s plovoucí desetinnou čárkou s jednoduchou přesností. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

public:
 static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] float % result);
public static bool TryParse(ReadOnlySpan<char> s, out float result);
static member TryParse : ReadOnlySpan<char> * single -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Single) As Boolean

Parametry

s
ReadOnlySpan<Char>

>Rozsah znaků, který obsahuje řetězcovou reprezentaci čísla, která se má převést.

result
Single

Pokud tato metoda vrátí, obsahuje jednopřesné číslo s plovoucí desetinnou čárkou ekvivalentní s parametru, pokud převod proběhl úspěšně nebo nula, pokud převod selhal. Převod selže, pokud s je null parametr nebo je prázdný nebo není číslo v platném formátu. Pokud s je platné číslo menší než Single.MinValue, result je NegativeInfinity. Pokud s je platné číslo větší než Single.MaxValue, result je PositiveInfinity. Tento parametr je předán neinicializovaný; jakákoli hodnota, která byla původně zadána, result bude přepsána.

Návraty

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

Poznámky

V .NET Core 3.0 a novějších se hodnoty, které jsou příliš velké, aby představovaly, se zaokrouhlují na PositiveInfinity specifikaci IEEE 754 nebo NegativeInfinity podle potřeby. V předchozích verzích, včetně rozhraní .NET Framework, parsování hodnoty, která byla příliš velká, aby představovala selhání.

Platí pro

TryParse(String, Single)

Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs

Převede řetězcovou reprezentaci čísla na ekvivalent čísla s plovoucí desetinnou čárkou s jednoduchou přesností. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] float % result);
public static bool TryParse(string s, out float result);
public static bool TryParse(string? s, out float result);
static member TryParse : string * single -> bool
Public Shared Function TryParse (s As String, ByRef result As Single) As Boolean

Parametry

s
String

Řetězec představující číslo, které se má převést.

result
Single

Pokud tato metoda vrátí, obsahuje jednopřesné číslo s plovoucí desetinnou čárkou ekvivalentní číselné hodnotě nebo symbolu obsaženému v s, pokud převod proběhl úspěšně nebo nula, pokud převod selhal. Převod selže, pokud s je null parametr nebo Empty není číslo v platném formátu. Selže také v rozhraní .NET Framework, pokud s představuje číslo menší než Single.MinValue nebo větší než Single.MaxValue. Tento parametr je předán neinicializovaný; jakákoli hodnota, která byla původně zadána, result bude přepsána.

Návraty

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

Příklady

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

string value;
float number;

// Parse a floating-point value with a thousands separator.
value = "1,643.57";
if (Single.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 (Single.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);

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

// Parse a negative integer value.
value = "-168934617882109132";
if (Single.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);
// The example displays the following output:
//       1643.57
//       Unable to parse '$1,643.57'.
//       -164300
//       -1.689346E+17
// Parse a floating-point value with a thousands separator.
let value = "1,643.57"
match Single.TryParse value with
| true, number ->
    printfn $"{number}"
| _ ->
    printfn $"Unable to parse '{value}'."

// Parse a floating-point value with a currency symbol and a
// thousands separator.
let value = "$1,643.57"
match Single.TryParse value with
| true, number ->
    printfn $"{number}"
| _ ->
    printfn $"Unable to parse '{value}'."

// Parse value in exponential notation.
let value = "-1.643e6"
match Single.TryParse value with
| true, number ->
    printfn $"{number}"
| _ ->
    printfn $"Unable to parse '{value}'."

// Parse a negative integer value.
let value = "-168934617882109132"
match Single.TryParse value with
| true, number ->
    printfn $"{number}"
| _ ->
    printfn $"Unable to parse '{value}'."
// The example displays the following output:
//       1643.57
//       Unable to parse '$1,643.57'.
//       -164300
//       -1.689346E+17
Dim value As String
Dim number As Single

' Parse a floating-point value with a thousands separator.
value = "1,643.57"
If Single.TryParse(value, number) Then
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)
End If

' Parse a floating-point value with a currency symbol and a
' thousands separator.
value = "$1,643.57"
If Single.TryParse(value, number) Then
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)
End If

' Parse value in exponential notation.
value = "-1.643e6"
If Single.TryParse(value, number)
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)
End If

' Parse a negative integer number.
value = "-168934617882109132"
If Single.TryParse(value, number)
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)
End If
' The example displays the following output:
'       1643.57
'       Unable to parse '$1,643.57'.
'       -1643000
'       -1.689346E+17

Poznámky

V .NET Core 3.0 a novějších se hodnoty, které jsou příliš velké, aby představovaly, se zaokrouhlují na PositiveInfinity specifikaci IEEE 754 nebo NegativeInfinity podle potřeby. V předchozích verzích, včetně rozhraní .NET Framework, parsování hodnoty, která byla příliš velká, aby představovala selhání.

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

Parametr s může obsahovat PositiveInfinitySymbolznak , NegativeInfinitySymbolnebo NaNSymbol symbol. Toto porovnání řetězců nerozlišuje malá a velká písmena v .NET Core 3.0 a novějších verzích, ale v předchozích verzích, včetně rozhraní .NET Framework, rozlišují malá a velká písmena. Parametrem s může být také řetězec formuláře:

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

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

Element Popis
Ws Řada prázdných znaků.
znaménko Symbol záporného nebo kladného znaménka.
integrální číslice Řada číselných znaků v rozsahu od 0 do 9, která určuje celočíselnou část čísla. Integrální číslice mohou chybět, pokud existují desetinné číslice.
, Symbol oddělovače skupin specifických pro jazykovou verzi.
. Symbol desetinné čárky specifické pro jazykovou verzi.
desetinné číslice Řada číselných znaků v rozsahu od 0 do 9, která určuje desetinnou část čísla.
E Velké nebo malé písmeno "e", které označuje exponenciální (vědecký) zápis.
exponenciální číslice Řada číselných znaků v rozsahu od 0 do 9, která určuje exponent.

Parametr s se interpretuje pomocí kombinace NumberStyles.Float příznaků a NumberStyles.AllowThousands příznaků. 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řítomny , spoužijte TryParse(String, NumberStyles, IFormatProvider, Single) přetížení metody.

Parametr s je analyzován pomocí informací o formátování v objektu NumberFormatInfo , který je inicializován pro aktuální systémovou jazykovou verzi. Další informace najdete na webu NumberFormatInfo.CurrentInfo. K analýze řetězce pomocí informací o formátování některé jiné zadané jazykové verze použijte TryParse(String, NumberStyles, IFormatProvider, Single) přetížení metody.

Obvykle platí, že pokud předáte metodu Single.TryParse řetězec vytvořený voláním Single.ToString metody, vrátí se původní Single hodnota. Kvůli ztrátě přesnosti se však hodnoty nemusí shodovat.

Pokud s je mimo rozsah datového Single typu, metoda vrátí false v rozhraní .NET Framework. V .NET Core 3.0 a novějších verzích vrátí Single.NegativeInfinity , pokud s je menší než Single.MinValue a Single.PositiveInfinity pokud s je větší než Single.MaxValue.

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

Viz také

Platí pro

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Single)

Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs

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

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = IUtf8SpanParsable<float>::TryParse;
public static bool TryParse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out float result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * single -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As Single) As Boolean

Parametry

utf8Text
ReadOnlySpan<Byte>

Rozsah znaků UTF-8 pro analýzu.

provider
IFormatProvider

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

result
Single

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

Návraty

true pokud utf8Text byl úspěšně analyzován; jinak , false.

Platí pro

TryParse(ReadOnlySpan<Char>, IFormatProvider, Single)

Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs

Pokusí se analyzovat rozsah znaků do hodnoty.

public:
 static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = ISpanParsable<float>::TryParse;
public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out float result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * single -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As Single) As Boolean

Parametry

s
ReadOnlySpan<Char>

Rozsah znaků, které se mají analyzovat.

provider
IFormatProvider

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

result
Single

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

Návraty

true pokud s byl úspěšně analyzován; jinak , false.

Platí pro

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

Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs

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

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = System::Numerics::INumberBase<float>::TryParse;
public static bool TryParse(ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out float result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * single -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As Single) As Boolean

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 utf8Textformátování specifické pro jazykovou verzi .

result
Single

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

Návraty

true pokud utf8Text byl úspěšně analyzován; jinak , false.

Platí pro

TryParse(ReadOnlySpan<Byte>, Single)

Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs

Pokusí se převést rozsah znaků UTF-8 obsahující řetězcovou reprezentaci čísla na ekvivalent čísla s plovoucí desetinnou čárkou s jednoduchou přesností.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] float % result);
public static bool TryParse(ReadOnlySpan<byte> utf8Text, out float result);
static member TryParse : ReadOnlySpan<byte> * single -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As Single) As Boolean

Parametry

utf8Text
ReadOnlySpan<Byte>

Rozsah znaků UTF-8 jen pro čtení, který obsahuje číslo, které se má převést.

result
Single

Pokud tato metoda vrátí, obsahuje jednopřesné číslo s plovoucí desetinnou čárkou ekvivalent číselné hodnoty nebo symbolu obsaženého v utf8Text případě, že převod proběhl úspěšně nebo nula, pokud převod selhal. Převod selže, pokud utf8Text je Empty nebo není v platném formátu. Tento parametr je předán neinicializovaný; jakákoli hodnota původně zadaná ve výsledku se přepíše.

Návraty

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

Platí pro

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

Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs

Převede reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na ekvivalent čísla s plovoucí desetinnou čárkou s jednoduchou přesností. 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, [Runtime::InteropServices::Out] float % result) = System::Numerics::INumberBase<float>::TryParse;
public:
 static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result);
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out float result);
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out float result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * single -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Single) As Boolean

Parametry

s
ReadOnlySpan<Char>

Rozsah znaků jen pro čtení, který obsahuje číslo, které chcete převést. Rozsah se interpretuje pomocí stylu určeného parametrem style.

style
NumberStyles

Bitová kombinace hodnot výčtu, která označuje povolený formát s. Typická hodnota, kterou je třeba zadat, se zkombinuje Float s AllowThousands.

provider
IFormatProvider

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

result
Single

Pokud tato metoda vrátí, obsahuje jednopřesné číslo s plovoucí desetinnou čárkou ekvivalentní číselné hodnotě nebo symbolu obsaženému v s, pokud převod byl úspěšný, nebo nula, pokud převod selhal. Převod selže, pokud s je null parametr nebo Empty, není ve formátu kompatibilním style, představuje číslo menší než Single.MinValue nebo větší než Single.MaxValue, nebo pokud style není platná kombinace výčtových NumberStyles konstant. Tento parametr je předán neinicializovaný; jakákoli hodnota, která byla původně zadána, result bude přepsána.

Návraty

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

Poznámky

V .NET Core 3.0 a novějších se hodnoty, které jsou příliš velké, aby představovaly, se zaokrouhlují na PositiveInfinity specifikaci IEEE 754 nebo NegativeInfinity podle potřeby. V předchozích verzích, včetně rozhraní .NET Framework, parsování hodnoty, která byla příliš velká, aby představovala selhání.

Platí pro

TryParse(String, NumberStyles, IFormatProvider, Single)

Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs
Zdroj:
Single.cs

Převede řetězcovou reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na ekvivalent čísla s plovoucí desetinnou čárkou s jednoduchou přesností. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.

public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result);
public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = System::Numerics::INumberBase<float>::TryParse;
public static bool TryParse(string s, System.Globalization.NumberStyles style, IFormatProvider provider, out float result);
public static bool TryParse(string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out float result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * single -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Single) As Boolean

Parametry

s
String

Řetězec 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, kterou je třeba zadat, se zkombinuje Float s AllowThousands.

provider
IFormatProvider

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

result
Single

Pokud tato metoda vrátí, obsahuje jednopřesné číslo s plovoucí desetinnou čárkou ekvivalentní číselné hodnotě nebo symbolu obsaženému v s, pokud převod byl úspěšný, nebo nula, pokud převod selhal. Převod selže, pokud s je parametr nebo Empty, není ve formátu kompatibilním stylenebo pokud style není platná kombinace výčtových NumberStyles konstant.null Selže také v rozhraní .NET Framework, pokud s představuje číslo menší než Single.MinValue nebo větší než Single.MaxValue. Tento parametr je předán neinicializovaný; jakákoli hodnota, která byla původně zadána, result bude přepsána.

Návraty

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

Výjimky

style není NumberStyles hodnota.

-nebo-

style AllowHexSpecifier je hodnota.

Příklady

Následující příklad ukazuje použití Single.TryParse(String, NumberStyles, IFormatProvider, Single) metody k analýze řetězcové reprezentace čísel, které mají určitý styl a jsou formátovány pomocí konvencí konkrétní jazykové verze.

string value;
System.Globalization.NumberStyles style;
System.Globalization.CultureInfo culture;
float number;

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

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

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

value = "1 345,978";
if (Single.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// The example displays the following output:
//       Converted '£1,097.63' to 1097.63.
//       Converted '1345,978' to 1345.978.
//       Converted '1.345,978' to 1345.978.
//       Unable to convert '1 345,978'.
// Parse currency value using en-GB culture.
let value = "£1,097.63"
let style = System.Globalization.NumberStyles.Number ||| System.Globalization.NumberStyles.AllowCurrencySymbol
let culture = System.Globalization.CultureInfo.CreateSpecificCulture "en-GB"
match Single.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ ->
    printfn $"Unable to convert '{value}'."

let value = "1345,978"
let style = System.Globalization.NumberStyles.AllowDecimalPoint
let culture = System.Globalization.CultureInfo.CreateSpecificCulture "fr-FR"
match Single.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ ->
    printfn $"Unable to convert '{value}'."

let value = "1.345,978"
let style = System.Globalization.NumberStyles.AllowDecimalPoint ||| System.Globalization.NumberStyles.AllowThousands
let culture = System.Globalization.CultureInfo.CreateSpecificCulture "es-ES"
match Single.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ ->
    printfn $"Unable to convert '{value}'."

let value = "1 345,978"
match Single.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ ->
    printfn $"Unable to convert '{value}'."
// The example displays the following output:
//       Converted '£1,097.63' to 1097.63.
//       Converted '1345,978' to 1345.978.
//       Converted '1.345,978' to 1345.978.
//       Unable to convert '1 345,978'.
Dim value As String
Dim style As System.Globalization.NumberStyles
Dim culture As System.Globalization.CultureInfo
Dim number As Single

' Parse currency value using en-GB culture.
value = "£1,097.63"
style = System.Globalization.NumberStyles.Number Or _
        System.Globalization.NumberStyles.AllowCurrencySymbol
culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-GB")
If Single.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If

value = "1345,978"
style = System.Globalization.NumberStyles.AllowDecimalPoint
culture = System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR")
If Single.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If

value = "1.345,978"
style = System.Globalization.NumberStyles.AllowDecimalPoint Or _
        System.Globalization.NumberStyles.AllowThousands
culture = System.Globalization.CultureInfo.CreateSpecificCulture("es-ES")
If Single.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If

value = "1 345,978"
If Single.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If
' The example displays the following output:
'       Converted '£1,097.63' to 1097.63.
'       Converted '1345,978' to 1345.978.
'       Converted '1.345,978' to 1345.978.
'       Unable to convert '1 345,978'.

Poznámky

V .NET Core 3.0 a novějších se hodnoty, které jsou příliš velké, aby představovaly, se zaokrouhlují na PositiveInfinity specifikaci IEEE 754 nebo NegativeInfinity podle potřeby. V předchozích verzích, včetně rozhraní .NET Framework, parsování hodnoty, která byla příliš velká, aby představovala selhání.

Toto přetížení se liší od Parse(String, NumberStyles, IFormatProvider) metody vrácením logické hodnoty, která označuje, zda byla operace analýzy úspěšná místo vrácení analyzované číselné hodnoty. Eliminuje nutnost použít zpracování výjimek k otestování v FormatException 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 výčtu NumberStyles . Následující NumberStyles členové nejsou podporováni:

Parametr s může obsahovat PositiveInfinitySymbol, NegativeInfinitySymbolnebo NaNSymbol symbol pro jazykovou verzi označenou provider. Toto porovnání řetězců nerozlišuje malá a velká písmena v .NET Core 3.0 a novějších verzích, ale v předchozích verzích, včetně rozhraní .NET Framework, rozlišují malá a velká písmena. Kromě toho může parametr v závislosti na hodnotě styleparametru s obsahovat následující prvky:

[ws] [$] [znaménko] [integral-digits,]integral-digits[.fractional-digits][e[sign]exponential-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 příznak NumberStyles.AllowLeadingWhite obsahuje. Může se zobrazit na konci s , pokud style příznak obsahuje NumberStyles.AllowTrailingWhite .
$ Symbol měny specifický pro jazykovou verzi. Jeho pozice v řetězci je definována vlastnostmi NumberFormatInfo.CurrencyNegativePatternNumberFormatInfo.CurrencyPositivePattern objektu NumberFormatInfo vráceného IFormatProvider.GetFormat metodou parametru provider . Symbol měny se může zobrazit, s pokud style obsahuje NumberStyles.AllowCurrencySymbol příznak.
znaménko Volitelné znaménko. Znaménko se může zobrazit na začátku s , pokud style příznak obsahuje NumberStyles.AllowLeadingSign , a může se zobrazit na konci s , pokud style příznak NumberStyles.AllowTrailingSign obsahuje. Závorky lze použít s k označení záporné hodnoty, pokud style obsahuje NumberStyles.AllowParentheses příznak.
integrální číslice Řada číslic v rozsahu od 0 do 9, která určuje celočíselnou část čísla. Integrální číslice mohou chybět, pokud existují desetinné číslice.
, Symbol oddělovače tisíců specifických pro jazykovou verzi. Symbol oddělovače tisíců aktuální jazykové verze se může zobrazit, s pokud style obsahuje NumberStyles.AllowThousands příznak.
. Symbol desetinné čárky specifické pro jazykovou verzi. Symbol desetinné čárky aktuální jazykové verze se může zobrazit, s pokud style příznak obsahuje NumberStyles.AllowDecimalPoint .
desetinné číslice Řada číslic v rozsahu od 0 do 9, která určuje desetinnou část čísla. Desetinná číslice se můžou zobrazit, s pokud style příznak NumberStyles.AllowDecimalPoint obsahuje.
e Znak e nebo E, který označuje, že s může představovat číslo pomocí exponenciálního zápisu. Parametr s může představovat číslo v exponenciálním zápisu, pokud styl obsahuje NumberStyles.AllowExponent příznak.
exponenciální číslice Řada číslic v rozsahu od 0 do 9, která určuje exponent.

Poznámka

Všechny ukončující nulové znaky (U+0000) jsou s ignorovány operací analýzy bez ohledu na hodnotu argumentu style .

Řetězec s číslicemi (který odpovídá NumberStyles.None stylu) se vždy úspěšně parsuje, pokud je v rozsahu Single typu. Zbývající System.Globalization.NumberStyles členy ovládací prvky, které mohou být, ale nejsou nutné, aby byly přítomny ve vstupním řetězci. Následující tabulka uvádí, jak jednotlivé NumberStyles příznaky ovlivňují prvky, které mohou být přítomny v s.

Hodnota NumberStyles Prvky povolené v s kromě číslic
None Pouze celočíselný prvek číslic.
AllowDecimalPoint Prvky . a desetinné číslice .
AllowExponent Parametr s může také použít exponenciální zápis. Tento příznak sám podporuje hodnoty v celočíselné čísliceEexponenciální číslice; Další příznaky jsou potřeba k úspěšnému parsování řetězců v exponenciálním zápisu s takovými prvky, jako jsou kladné nebo záporné znaménka a symboly desetinné čárky.
AllowLeadingWhite Element ws na začátku s.
AllowTrailingWhite Prvek ws na konci .s
AllowLeadingSign Prvek znaménka na začátku s.
AllowTrailingSign Prvek znaménka na konci znaku s.
AllowParentheses Prvek znaménka ve formě závorek ohraničující číselnou hodnotu.
AllowThousands Prvek , .
AllowCurrencySymbol Prvek $ .
Currency Všichni. Parametr s nemůže představovat šestnáctkové číslo nebo číslo v exponenciálním zápisu.
Float Prvek ws na začátku nebo konci sznaku , na začátku sa symbolu . Parametr s může také použít exponenciální zápis.
Number Prvky ws, signoddělovač tisíců (,) a desetinná čárka (.).
Any Všechny styly s výjimkou s nemohou představovat šestnáctkové číslo.

Parametr provider je IFormatProvider implementace, jejíž GetFormat metoda vrací NumberFormatInfo objekt, který poskytuje informace o formátování specifické pro jazykovou verzi. TryParse(String, NumberStyles, IFormatProvider, Single) Při vyvolání metody volá metodu provider parametru GetFormat a předá jí Type objekt, který představuje NumberFormatInfo typ. Metoda GetFormat pak vrátí NumberFormatInfo objekt, který poskytuje informace o formátu parametru s . Existují tři způsoby použití parametru provider k zadání vlastních informací o formátování do operace analýzy:

  • Můžete předat CultureInfo objekt, který představuje jazykovou verzi, která poskytuje informace o formátování. Jeho GetFormat metoda vrátí NumberFormatInfo objekt, který poskytuje číselné formátování informace pro danou jazykovou verzi.

  • Můžete předat skutečný NumberFormatInfo objekt, který poskytuje informace o číselném formátování. (Její implementace GetFormat pouze vrátí sama sebe.)

  • Můžete předat vlastní objekt, který implementuje IFormatProvider. Jeho GetFormat metoda vytvoří instanci a vrátí NumberFormatInfo objekt, který poskytuje informace o formátování.

Pokud provider je null, formátování s je interpretováno na NumberFormatInfo základě objektu aktuální jazykové verze.

Pokud s je mimo rozsah datového Single typu, metoda vyvolá v OverflowException rozhraní .NET Framework. V .NET Core 3.0 a novějších verzích vrátí Single.NegativeInfinity , pokud s je menší než Single.MinValue a Single.PositiveInfinity pokud s je větší než Single.MaxValue.

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

Viz také

Platí pro