Single.TryParse Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 s
jazykovou verzi.
- result
- Single
Když 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ě 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 s
objektu 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 utf8Text
jazykovou 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
true
pokud 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
true
pokud 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, s
pokud 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, s
pokud 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
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ě style
s
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 s style zobrazit prázdné znaky. Pokud příznak obsahujeNumberStyles.AllowTrailingWhite, může se zobrazit na konci.s style |
$ | 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.style s 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 s a 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
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro