Single.TryParse Metoda

Definice

Převede řetězcové vyjádření čísla na odpovídající číslo s jednoduchou přesností a plovoucí desetinnou čárkou. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

Přetížení

TryParse(ReadOnlySpan<Char>, IFormatProvider, Single)

Pokusí se parsovat rozsah znaků na hodnotu.

TryParse(ReadOnlySpan<Char>, Single)

Převede řetězcové vyjádření čísla ve znakovém rozsahu na ekvivalent čísla s plovoucí desetinnou čárkou s jednoduchou přesností. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

TryParse(String, Single)

Převede řetězcové vyjádření čísla na odpovídající číslo s jednoduchou přesností a plovoucí desetinnou čárkou. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Single)

Pokusí se parsovat rozsah znaků UTF-8 na hodnotu.

TryParse(String, IFormatProvider, Single)

Pokusí se parsovat řetězec na hodnotu.

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

Pokusí se parsovat rozsah znaků UTF-8 na hodnotu.

TryParse(ReadOnlySpan<Byte>, Single)

Pokusí se převést znakový rozsah UTF-8 obsahující řetězcové vyjádření čísla na jeho ekvivalent čísla s plovoucí desetinnou čárkou s jednou přesností.

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

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

TryParse(String, NumberStyles, IFormatProvider, Single)

Převede řetězcové vyjádření čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho ekvivalent čísla s plovoucí desetinnou čárkou s jednoduchou přesností. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

Poznámky

V .NET Core 3.0 a novějších verzích se hodnoty, které jsou pro reprezentaci příliš velké, zaokrouhlují na PositiveInfinity nebo NegativeInfinity podle požadavků specifikace IEEE 754. V předchozích verzích, včetně rozhraní .NET Framework, analýza hodnoty, která byla příliš velká na reprezentaci, způsobila chybu.

TryParse(ReadOnlySpan<Char>, IFormatProvider, Single)

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

Pokusí se parsovat rozsah znaků na hodnotu.

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

result
Single

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

Návraty

true pokud s byl úspěšně parsován, jinak hodnota false.

Platí pro

TryParse(ReadOnlySpan<Char>, Single)

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

Převede řetězcové vyjádření čísla ve znakovém rozsahu na ekvivalent čísla s plovoucí desetinnou čárkou s jednoduchou přesností. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

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>

>Znakové rozpětí, které obsahuje řetězcové vyjádření čísla, které se má převést.

result
Single

Když tato metoda vrátí hodnotu , obsahuje číselný ekvivalent s plovoucí desetinou čárkou s jednou přesností parametru s , pokud byl převod úspěšný, nebo nulu, pokud se převod nezdařil. Převod selže, s pokud je null parametr 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 neinicializován; jakákoli hodnota původně zadaná v result bude přepsána.

Návraty

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

Poznámky

V .NET Core 3.0 a novějších verzích se hodnoty, které jsou pro reprezentaci příliš velké, zaokrouhlují na PositiveInfinity nebo NegativeInfinity podle požadavků specifikace IEEE 754. V předchozích verzích, včetně rozhraní .NET Framework, analýza hodnoty, která byla příliš velká na reprezentaci, způsobila chybu.

Platí pro

TryParse(String, Single)

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

Převede řetězcové vyjádření čísla na odpovídající číslo s jednoduchou přesností a plovoucí desetinnou čárkou. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

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é chcete převést.

result
Single

Když tato metoda vrátí hodnotu , obsahuje číslo s plovoucí desetinou čárkou s jednoduchou přesností odpovídající číselné hodnotě nebo symbolu obsaženému v s, pokud byl převod úspěšný, nebo nula, pokud se převod nezdařil. Převod se nezdaří, s pokud parametr je null nebo Empty není číslo v platném formátu. Selže také v rozhraní .NET Framework a .NET Core 2.2 a starších verzích, pokud s představuje číslo menší než Single.MinValue nebo větší než Single.MaxValue. Tento parametr je předán neinicializován; jakákoli hodnota původně zadaná v result bude přepsána.

Návraty

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

Příklady

Následující příklad používá metodu TryParse(String, Single) k převodu řetězcových reprezentací číselných hodnot na Single hodnoty. Předpokládá, ž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 verzích se hodnoty, které jsou pro reprezentaci příliš velké, zaokrouhlují na PositiveInfinity nebo NegativeInfinity podle požadavků specifikace IEEE 754. V předchozích verzích, včetně rozhraní .NET Framework, analýza hodnoty, která byla příliš velká na reprezentaci, způsobila chybu.

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

Parametr s může obsahovat PositiveInfinitySymbol, NegativeInfinitySymbolNaNSymbol (při porovnání řetězců se rozlišují malá a velká písmena) nebo řetězec ve formátu :

[ws] [sign] [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 Posloupnost znaků mezer.
sign Symbol záporného znaménka nebo symbol kladného znaménka.
číslice-základu Řada číselných znaků v rozsahu od 0 do 9, které určují nedílnou část čísla. Číslice základu nemusí být uvedeny, pokud jsou uvedeny desetinné číslice.
, Symbol oddělovače skupin, specifický pro jazykovou verzi.
. Symbol desetinné čárky specifický pro jazykovou verzi.
desetinné-číslice Řada číselných znaků od 0 do 9, které určují zlomkovou část čísla.
E Velké nebo malé písmeno "e", které označuje exponenciální (vědecký) zápis.
číslice-exponentu Řada číselných znaků od 0 do 9, které určují exponent.

Parametr se s interpretuje pomocí kombinace NumberStyles.Float příznaků a NumberStyles.AllowThousands . To znamená, že mezery a oddělovače tisíců jsou povoleny, ale symboly měny nikoli. Pokud chcete explicitně definovat prvky (například symboly měny, oddělovače tisíců a prázdné znaky), které se můžou vyskytovat v sobjektu TryParse(String, NumberStyles, IFormatProvider, Single) , použijte 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í jazykovou verzi systému. Další informace naleznete v tématu NumberFormatInfo.CurrentInfo. Chcete-li analyzovat řetězec pomocí informací o formátování některé jiné jazykové verze, použijte TryParse(String, NumberStyles, IFormatProvider, Single) přetížení metody.

Obvykle, pokud předáte Single.TryParse metodě řetězec, který je vytvořen voláním Single.ToString metody, je vrácena původní Single hodnota. Z důvodu ztráty přesnosti nemusí být hodnoty stejné.

Pokud s je mimo rozsah datového Single typu, metoda vrátí false rozhraní .NET Framework a .NET Core 2.2 a starší verze. V .NET Core 3.0 a novějších verzích se 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 příslušné oddělovače desetinných míst měny nebo čísla jsou stejné a oddělovače skupin, operace parsování předpokládá, že oddělovač je oddělovač desetinných míst, nikoli oddělovač skupin. Další informace o oddělovacích najdete v tématu CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatora NumberGroupSeparator.

Viz také

Platí pro

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Single)

Zdroj:
Single.cs
Zdroj:
Single.cs

Pokusí se parsovat rozsah znaků UTF-8 na hodnotu.

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, které se mají analyzovat.

provider
IFormatProvider

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

result
Single

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

Návraty

true pokud utf8Text byl úspěšně parsován, jinak hodnota false.

Platí pro

TryParse(String, IFormatProvider, Single)

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

Pokusí se parsovat řetězec na hodnotu.

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ý chcete analyzovat.

provider
IFormatProvider

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

result
Single

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

Návraty

truepokud s byl úspěšně parsován, v opačném případě . false

Platí pro

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

Zdroj:
Single.cs
Zdroj:
Single.cs

Pokusí se parsovat rozsah znaků UTF-8 na hodnotu.

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, které se mají analyzovat.

style
NumberStyles

Bitové kombinace stylů čísel, které se můžou vyskytovat v nástroji utf8Text.

provider
IFormatProvider

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

result
Single

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

Návraty

truepokud utf8Text byl úspěšně parsován, v opačném případě . false

Platí pro

TryParse(ReadOnlySpan<Byte>, Single)

Zdroj:
Single.cs
Zdroj:
Single.cs

Pokusí se převést rozsah znaků UTF-8 obsahující řetězcovou reprezentaci čísla na jeho ekvivalent s plovoucí desetinnou čárkou s jednou 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

Když se tato metoda vrátí, obsahuje číselný ekvivalent s plovoucí desetinou čárkou s jednou přesností k číselné hodnotě nebo symbolu obsaženému v případě úspěšného převodu nebo nule, utf8Text pokud se převod nezdařil. Převod selže, utf8Text pokud je Empty nebo není v platném formátu. Tento parametr je předán neinicializován; jakákoli hodnota původně zadaná ve výsledku bude přepsána.

Návraty

true pokud utf8Text byl převod úspěšně, v opačném případě false.

Platí pro

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

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

Převede reprezentaci rozsahu čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho číselný ekvivalent s plovoucí desetinou čárkou s jednou přesností. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

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, [Runtime::InteropServices::Out] float % result) = System::Numerics::INumberBase<float>::TryParse;
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é se má převést. Rozsah se interpretuje pomocí stylu určeného nástrojem style.

style
NumberStyles

Bitové kombinace hodnot výčtu, která označuje povolený formát souboru s. Typická hodnota, která se má zadat, je Float kombinována s AllowThousandshodnotou .

provider
IFormatProvider

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

result
Single

Když tato metoda vrátí hodnotu, obsahuje číslo s plovoucí desetinou čárkou s jednou přesností, které odpovídá číselné hodnotě nebo symbolu obsaženému v , pokud převod proběhl úspěšně, nebo nula, spokud se převod nezdařil. Převod selže, pokud s parametr je null nebo Empty, není ve formátu kompatibilním s 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 neinicializován; jakákoli hodnota původně zadaná v result se přepíše.

Návraty

true pokud s byl převod úspěšně, v opačném případě false.

Poznámky

V .NET Core 3.0 a novějších verzích se hodnoty, které jsou pro reprezentaci příliš velké, zaokrouhlují na PositiveInfinity nebo NegativeInfinity podle požadavků specifikace IEEE 754. V předchozích verzích, včetně rozhraní .NET Framework, analýza hodnoty, která byla příliš velká na to, aby reprezentovala, způsobila selhání.

Platí pro

TryParse(String, NumberStyles, IFormatProvider, Single)

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

Převede řetězcové vyjádření čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho ekvivalent čísla s plovoucí desetinnou čárkou s jednoduchou přesností. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.

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é chcete převést.

style
NumberStyles

Bitové kombinace hodnot výčtu, která označuje povolený formát souboru s. Typická hodnota, která se má zadat, je Float kombinována s AllowThousandshodnotou .

provider
IFormatProvider

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

result
Single

Když tato metoda vrátí hodnotu, obsahuje číslo s plovoucí desetinou čárkou s jednou přesností, které odpovídá číselné hodnotě nebo symbolu obsaženému v , pokud převod proběhl úspěšně, nebo nula, spokud se převod nezdařil. Převod selže, s pokud parametr je null nebo Empty, není ve formátu kompatibilním s style, nebo pokud style není platná kombinace konstant výčtu NumberStyles . Selže také v rozhraní .NET Framework nebo .NET Core 2.2 a starších verzích, pokud s představuje číslo menší než Single.MinValue nebo větší než Single.MaxValue. Tento parametr je předán neinicializován; jakákoli hodnota původně zadaná v result se přepíše.

Návraty

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

Výjimky

style není NumberStyles hodnota.

-nebo-

styleAllowHexSpecifier 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 verzích se hodnoty, které jsou pro reprezentaci příliš velké, zaokrouhlují na PositiveInfinity nebo NegativeInfinity podle požadavků specifikace IEEE 754. V předchozích verzích, včetně rozhraní .NET Framework, analýza hodnoty, která byla příliš velká na to, aby reprezentovala, způsobila selhání.

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

Parametr style definuje povolený formát parametru s , aby operace analýzy byla úspěšná. 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, NegativeInfinitySymbolpro NaNSymbol jazykovou verzi označenou parametrem provider. Kromě toho může parametr v závislosti na hodnotě styles parametru obsahovat následující prvky:

[ws] [$] [sign] [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é místo. Pokud příznak obsahujeNumberStyles.AllowLeadingWhite, může se na začátku sstyle zobrazit prázdné znaky. Pokud příznak obsahujeNumberStyles.AllowTrailingWhite, může se zobrazit na konci.sstyle
$ Symbol měny pro konkrétní jazykovou verzi. Jeho pozice v řetězci je definována vlastnostmi NumberFormatInfo.CurrencyNegativePattern nebo NumberFormatInfo.CurrencyPositivePattern objektu NumberFormatInfo vráceným metodou IFormatProvider.GetFormat parametru provider . Symbol měny se může zobrazit v s , pokud style obsahuje NumberStyles.AllowCurrencySymbol příznak.
sign Nepovinný znak. Znaménko se může zobrazit na začátku, pokud příznak obsahujeNumberStyles.AllowLeadingSign, a může se zobrazit na konci, s pokud style příznak obsahujeNumberStyles.AllowTrailingSign.styles Závorky lze v s použít k označení záporné hodnoty, pokud style obsahuje NumberStyles.AllowParentheses příznak.
číslice-základu Řada číslic od 0 do 9, které určují základní část čísla. Číslice základu nemusí být uvedeny, pokud jsou uvedeny desetinné číslice.
, Symbol oddělovače tisíců, specifický pro jazykovou verzi. Symbol oddělovače tisíců aktuální jazykové verze se může zobrazit v 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 v s , pokud style obsahuje NumberStyles.AllowDecimalPoint příznak.
desetinné-číslice Řada číslic od 0 do 9, které určují desetinnou část čísla. Desetinné číslice se můžou zobrazit v s , pokud style obsahuje NumberStyles.AllowDecimalPoint příznak.
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.
číslice-exponentu Řada číslic od 0 do 9, které určují exponent.

Poznámka

Operace analýzy ignoruje všechny ukončující ZNAKY NUL (U+0000) bez s ohledu na hodnotu argumentu style .

Řetězec pouze s číslicemi (který odpovídá NumberStyles.None stylu) se vždy úspěšně analyzuje, pokud je v rozsahu Single typu. Zbývající System.Globalization.NumberStyles členové 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 nástroji s.

Hodnota NumberStyles Prvky, které jsou povoleny v s, kromě číslic
None Pouze prvek celočíselné číslice .
AllowDecimalPoint Elementy . a desetinné číslice .
AllowExponent Parametr s může také použít exponenciální notaci. Tento příznak sám o sobě podporuje hodnoty ve formě integrálních číslicEexponenciálních číslic; K úspěšné parsování řetězců v exponenciálním zápisu s prvky, jako jsou kladná nebo záporná znaménka a symboly desetinné čárky, jsou potřeba další příznaky.
AllowLeadingWhite Element ws na začátku souboru s.
AllowTrailingWhite Element ws na konci souboru s.
AllowLeadingSign Element sign na začátku objektu s.
AllowTrailingSign Element sign na konci objektu s.
AllowParentheses Element sign ve formě závorek ohraničující číselnou hodnotu.
AllowThousands Element ,
AllowCurrencySymbol Element $ .
Currency Všechny. Parametr s nemůže představovat šestnáctkové číslo ani číslo v exponenciálním zápisu.
Float Element ws na začátku nebo na konci s, znaménko na začátku sa symbol . Parametr s může také používat exponenciální zápis.
Number Elementy ws, sign, oddělovač tisíců (,) a desetinná čárka (.)
Any Všechny styly s výjimkou, že 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. Při vyvolání TryParse(String, NumberStyles, IFormatProvider, Single) metody volá metodu parametru GetFormatprovider 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 poskytnutí informací o vlastním formátování do operace parsování:

  • 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 informace o číselném formátování pro danou jazykovou verzi.

  • Můžete předat skutečný NumberFormatInfo objekt, který poskytuje informace o číselném formátování. (Jeho implementace pouze GetFormat vrací 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 základě objektu NumberFormatInfo aktuální jazykové verze.

Pokud s je mimo rozsah datového Single typu, metoda vyvolá výjimku OverflowException v rozhraní .NET Framework a .NET Core 2.2 a starších verzích. V .NET Core 3.0 a novějších verzích se 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 příslušné oddělovače desetinných míst měny nebo čísla jsou stejné a oddělovače skupin, operace parsování předpokládá, že oddělovač je oddělovač desetinných míst, nikoli oddělovač skupin. Další informace o oddělovacích najdete v tématu CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatora NumberGroupSeparator.

Viz také

Platí pro