Double.TryParse Metoda

Definice

Převede řetězcové vyjádření čísla na jeho ekvivalentní typ dvojité přesnosti s plovoucí řádovou čárkou.Converts the string representation of a number to its double-precision floating-point number equivalent. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.A return value indicates whether the conversion succeeded or failed.

Přetížení

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

Převede reprezentaci čísla v zadaném stylu a formátu specifického pro jazykovou verzi na jeho ekvivalent plovoucí desetinné čárky s dvojitou přesností.Converts the span representation of a number in a specified style and culture-specific format to its double-precision floating-point number equivalent. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.A return value indicates whether the conversion succeeded or failed.

TryParse(String, Double)

Převede řetězcové vyjádření čísla na jeho ekvivalentní typ dvojité přesnosti s plovoucí řádovou čárkou.Converts the string representation of a number to its double-precision floating-point number equivalent. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.A return value indicates whether the conversion succeeded or failed.

TryParse(ReadOnlySpan<Char>, Double)

Převede reprezentaci čísla v zadaném stylu a formátu specifického pro jazykovou verzi na jeho ekvivalent plovoucí desetinné čárky s dvojitou přesností.Converts the span representation of a number in a specified style and culture-specific format to its double-precision floating-point number equivalent. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.A return value indicates whether the conversion succeeded or failed.

TryParse(String, NumberStyles, IFormatProvider, Double)

Převede řetězcové vyjádření čísla v zadaném stylu a formátu specifického pro jazykovou verzi na jeho ekvivalent plovoucí desetinné čárky s dvojitou přesností.Converts the string representation of a number in a specified style and culture-specific format to its double-precision floating-point number equivalent. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.A return value indicates whether the conversion succeeded or failed.

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

Převede reprezentaci čísla v zadaném stylu a formátu specifického pro jazykovou verzi na jeho ekvivalent plovoucí desetinné čárky s dvojitou přesností.Converts the span representation of a number in a specified style and culture-specific format to its double-precision floating-point number equivalent. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.A return value indicates whether the conversion succeeded or failed.

public:
 static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] double % result);
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out double result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * double -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Double) As Boolean

Parametry

s
ReadOnlySpan<Char>

Rozsah obsahující znaky, které mají být převedeny.A span containing the characters representing the number to convert.

style
NumberStyles

Bitová kombinace hodnot NumberStyles, které určují povolený formát s.A bitwise combination of NumberStyles values that indicates the permitted format of s. Typická hodnota, která se má specifikovat, je Float kombinované s AllowThousands.A typical value to specify is Float combined with AllowThousands.

provider
IFormatProvider

IFormatProvider, která poskytuje informace o formátování specifické pro jazykovou verzi s.An IFormatProvider that supplies culture-specific formatting information about s.

result
Double

Když tato metoda vrátí, obsahuje číslo s plovoucí desetinnou čárkou s dvojitou přesností, který je ekvivalentní číselné hodnotě nebo symbolu obsažené v s, pokud byl převod úspěšný, nebo nula, pokud se převod nezdařil.When this method returns, contains a double-precision floating-point number equivalent of the numeric value or symbol contained in s, if the conversion succeeded, or zero if the conversion failed. Převod se nezdařil, pokud je parametr s null nebo Empty, není ve formátu, který je kompatibilní s style, představuje číslo menší než MinValue nebo větší než MaxValue, nebo pokud style není platná kombinace NumberStylesch výčtových konstant.The conversion fails if the s parameter is null or Empty, is not in a format compliant with style, represents a number less than MinValue or greater than MaxValue, or if style is not a valid combination of NumberStyles enumerated constants. Tento parametr se předává jako Neinicializovaný; jakákoli hodnota původně zadaná v result bude přepsána.This parameter is passed uninitialized; any value originally supplied in result will be overwritten.

Návraty

true, pokud s byl úspěšně převeden; v opačném případě false.true if s was converted successfully; otherwise, false.

TryParse(String, Double)

Převede řetězcové vyjádření čísla na jeho ekvivalentní typ dvojité přesnosti s plovoucí řádovou čárkou.Converts the string representation of a number to its double-precision floating-point number equivalent. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.A return value indicates whether the conversion succeeded or failed.

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

Parametry

s
String

Řetězec obsahující číslo k převedení.A string containing a number to convert.

result
Double

Když tato metoda vrátí hodnotu, obsahuje ekvivalent plovoucí desetinné čárky s dvojitou přesností parametr s, pokud byl převod úspěšný, nebo nula, pokud se převod nezdařil.When this method returns, contains the double-precision floating-point number equivalent of the s parameter, if the conversion succeeded, or zero if the conversion failed. Převod se nezdařil, pokud je parametr s null nebo Empty, není číslo v platném formátu nebo představuje číslo menší než MinValue nebo větší než MaxValue.The conversion fails if the s parameter is null or Empty, is not a number in a valid format, or represents a number less than MinValue or greater than MaxValue. Tento parametr se předává jako Neinicializovaný; jakákoli hodnota původně zadaná v result bude přepsána.This parameter is passed uninitialized; any value originally supplied in result will be overwritten.

Návraty

true, pokud s byl úspěšně převeden; v opačném případě false.true if s was converted successfully; otherwise, false.

Příklady

Následující příklad používá metodu TryParse(String, Double) pro převod řetězcové reprezentace číselných hodnot na hodnoty Double.The following example uses the TryParse(String, Double) method to convert the string representations of numeric values to Double values. Předpokládá, že en-US je aktuální jazyková verze.It assumes that en-US is the current culture.

using System;

public class Example
{
   public static void Main()
   {
      string[] values = { "1,643.57", "$1,643.57", "-1.643e6", 
                          "-168934617882109132", "123AE6", 
                          null, String.Empty, "ABCDEF" };
      double number;
      
      foreach (var value in values) {
         if (Double.TryParse(value, out number)) 
            Console.WriteLine("'{0}' --> {1}", value, number);
         else
            Console.WriteLine("Unable to parse '{0}'.", value);      
      }   
   }
}
// The example displays the following output:
//       '1,643.57' --> 1643.57
//       Unable to parse '$1,643.57'.
//       '-1.643e6' --> -1643000
//       '-168934617882109132' --> -1.68934617882109E+17
//       Unable to parse '123AE6'.
//       Unable to parse ''.
//       Unable to parse ''.
//       Unable to parse 'ABCDEF'.
Module Example
   Public Sub Main()
      Dim values() As String = { "1,643.57", "$1,643.57", "-1.643e6", 
                                "-168934617882109132", "123AE6", 
                                Nothing, String.Empty, "ABCDEF" }
      Dim number As Double
      
      For Each value In values
         If Double.TryParse(value, number) Then
            Console.WriteLine("'{0}' --> {1}", value, number)
         Else
            Console.WriteLine("Unable to parse '{0}'.", value)      
         End If   
      Next   
   End Sub
End Module
' The example displays the following output:
'       '1,643.57' --> 1643.57
'       Unable to parse '$1,643.57'.
'       '-1.643e6' --> -1643000
'       '-168934617882109132' --> -1.68934617882109E+17
'       Unable to parse '123AE6'.
'       Unable to parse ''.
'       Unable to parse ''.
'       Unable to parse 'ABCDEF'.

Poznámky

Toto přetížení se liší od metody Double.Parse(String) tím, že vrací logickou hodnotu, která označuje, zda byla operace analýzy úspěšná, místo vrácení analyzované číselné hodnoty.This overload differs from the Double.Parse(String) method by returning a Boolean value that indicates whether the parse operation succeeded instead of returning the parsed numeric value. Eliminuje nutnost použít zpracování výjimek k otestování FormatException v případě, že s je neplatný a nelze jej úspěšně analyzovat.It eliminates the need to use exception handling to test for a FormatException in the event that s is invalid and cannot be successfully parsed.

Parametr s může obsahovat aktuální NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, NumberFormatInfo.NaNSymbol (porovnávání řetězců rozlišuje velká a malá písmena) nebo řetězec ve tvaru:The s parameter can contain the current culture's NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, NumberFormatInfo.NaNSymbol (the string comparison is case-sensitive), or a string of the form:

specifikace osobě [celočíselné číslice,] integrální číslice [. [ zlomkové číslice]] [e [znak] exponenciální číslice] [ws][ws][sign][integral-digits,]integral-digits[.[fractional-digits]][e[sign]exponential-digits][ws]

Prvky v hranatých závorkách jsou volitelné.Elements in square brackets are optional. Následující tabulka popisuje jednotlivé prvky.The following table describes each element.

PrvekElement PopisDescription
specifikacews Posloupnost znaků mezer.A series of white-space characters.
signsign Symbol záporného znaménka nebo symbol kladného znaménka.A negative sign or positive sign symbol.
integrální čísliceintegral-digits Řada číselných znaků od 0 do 9, které určují integrální část čísla.A series of numeric characters ranging from 0 to 9 that specify the integral part of the number. Číslice základu nemusí být uvedeny, pokud jsou uvedeny desetinné číslice.Integral-digits can be absent if there are fractional-digits.
,, Symbol oddělovače skupin, specifický pro jazykovou verzi.A culture-specific group separator symbol.
.. Symbol desetinné čárky specifický pro jazykovou verzi.A culture-specific decimal point symbol.
zlomkové číslicefractional-digits Řada číselných znaků od 0 do 9, které určují zlomkovou část čísla.A series of numeric characters ranging from 0 to 9 that specify the fractional part of the number.
CerebrálníE Znak "e", který označuje exponenciální (vědecký) zápis.An uppercase or lowercase character 'e', that indicates exponential (scientific) notation.
exponenciální – čísliceexponential-digits Řada číselných znaků od 0 do 9, které určují exponent.A series of numeric characters ranging from 0 to 9 that specify an exponent.

Další informace o číselných formátech najdete v tématu formátování typů.For more information about numeric formats, see Formatting Types.

Parametr s je interpretován pomocí kombinace příznaků NumberStyles.Float a NumberStyles.AllowThousands.The s parameter is interpreted by using a combination of the NumberStyles.Float and NumberStyles.AllowThousands flags. To znamená, že mezery a oddělovače tisíců jsou povoleny, ale symboly měny nikoli.This means that white space and thousands separators are allowed but currency symbols are not. Chcete-li explicitně definovat prvky (například symboly měny, oddělovače tisíců a prázdné znaky), které mohou být k dispozici v s, použijte přetížení metody Double.TryParse(String, NumberStyles, IFormatProvider, Double).To explicitly define the elements (such as currency symbols, thousands separators, and white space) that can be present in s, use the Double.TryParse(String, NumberStyles, IFormatProvider, Double) method overload.

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.The s parameter is parsed using the formatting information in a NumberFormatInfo object that is initialized for the current system culture. Další informace najdete v tématu NumberFormatInfo.CurrentInfo.For more information, see NumberFormatInfo.CurrentInfo. Chcete-li analyzovat řetězec pomocí informací o formátování některé jiné zadané jazykové verze, použijte přetížení metody Double.TryParse(String, NumberStyles, IFormatProvider, Double).To parse a string using the formatting information of some other specified culture, use the Double.TryParse(String, NumberStyles, IFormatProvider, Double) method overload.

Obvykle Pokud předáte Double.TryParse metodu, která je vytvořena voláním metody Double.ToString, je vrácena původní hodnota Double.Ordinarily, if you pass the Double.TryParse method a string that is created by calling the Double.ToString method, the original Double value is returned. Z důvodu ztráty přesnosti nemusí být hodnoty stejné.However, because of a loss of precision, the values may not be equal. Kromě toho se při pokusu o analýzu řetězcové reprezentace buď MinValue, nebo MaxValue vyvolá OverflowException, jak ukazuje následující příklad.In addition, attempting to parse the string representation of either MinValue or MaxValue throws an OverflowException, as the following example illustrates.

using System;

public class Example
{
   public static void Main()
   {
      string value;
      double number;
      
      value = Double.MinValue.ToString();
      if (Double.TryParse(value, out number))
         Console.WriteLine(number);
      else
         Console.WriteLine("{0} is outside the range of a Double.", 
                           value);
      
      value = Double.MaxValue.ToString();
      if (Double.TryParse(value, out number))
         Console.WriteLine(number);
      else
         Console.WriteLine("{0} is outside the range of a Double.",
                           value);
   }
}
// The example displays the following output:
//    -1.79769313486232E+308 is outside the range of the Double type.
//    1.79769313486232E+308 is outside the range of the Double type.            
Module Example
   Public Sub Main()
      Dim value As String
      Dim number As Double
      
      value = Double.MinValue.ToString()
      If Double.TryParse(value, number) Then
         Console.WriteLine(number)
      Else
         Console.WriteLine("{0} is outside the range of a Double.", _
                           value)
      End If
      
      value = Double.MaxValue.ToString()
      If Double.TryParse(value, number) Then
         Console.WriteLine(number)
      Else
         Console.WriteLine("{0} is outside the range of a Double.", _
                           value)
      End If
   End Sub
End Module
' The example displays the following output:
'    -1.79769313486232E+308 is outside the range of the Double type.
'    1.79769313486232E+308 is outside the range of the Double type.            

Pokud se v parametru s během operace analýzy objevil oddělovač a oddělovače desetinných míst a skupin jsou stejné, operace analýzy předpokládá, že oddělovač je oddělovač desetinných míst, nikoli oddělovač skupiny.If a separator is encountered in the s parameter during a parse operation, and the decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. Další informace o oddělovačích naleznete v tématu CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatora NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Viz také

TryParse(ReadOnlySpan<Char>, Double)

Převede reprezentaci čísla v zadaném stylu a formátu specifického pro jazykovou verzi na jeho ekvivalent plovoucí desetinné čárky s dvojitou přesností.Converts the span representation of a number in a specified style and culture-specific format to its double-precision floating-point number equivalent. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.A return value indicates whether the conversion succeeded or failed.

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

Parametry

s
ReadOnlySpan<Char>

Rozsah obsahující znaky, které mají být převedeny.A span containing the characters representing the number to convert.

result
Double

Když tato metoda vrátí, obsahuje číslo s plovoucí desetinnou čárkou s dvojitou přesností, který je ekvivalentní číselné hodnotě nebo symbolu obsažené v s, pokud byl převod úspěšný, nebo nula, pokud se převod nezdařil.When this method returns, contains a double-precision floating-point number equivalent of the numeric value or symbol contained in s, if the conversion succeeded, or zero if the conversion failed. Převod se nezdařil, pokud je parametr s null nebo Empty, není ve formátu, který je kompatibilní s style, představuje číslo menší než MinValue nebo větší než MaxValue, nebo pokud style není platná kombinace NumberStylesch výčtových konstant.The conversion fails if the s parameter is null or Empty, is not in a format compliant with style, represents a number less than MinValue or greater than MaxValue, or if style is not a valid combination of NumberStyles enumerated constants. Tento parametr se předává jako Neinicializovaný; jakákoli hodnota původně zadaná v result bude přepsána.This parameter is passed uninitialized; any value originally supplied in result will be overwritten.

Návraty

true, pokud s byl úspěšně převeden; v opačném případě false.true if s was converted successfully; otherwise, false.

TryParse(String, NumberStyles, IFormatProvider, Double)

Převede řetězcové vyjádření čísla v zadaném stylu a formátu specifického pro jazykovou verzi na jeho ekvivalent plovoucí desetinné čárky s dvojitou přesností.Converts the string representation of a number in a specified style and culture-specific format to its double-precision floating-point number equivalent. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.A return value indicates whether the conversion succeeded or failed.

public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] double % result);
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out double result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * double -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Double) As Boolean

Parametry

s
String

Řetězec obsahující číslo k převedení.A string containing a number to convert.

style
NumberStyles

Bitová kombinace hodnot NumberStyles, které určují povolený formát s.A bitwise combination of NumberStyles values that indicates the permitted format of s. Typická hodnota, která se má specifikovat, je Float kombinované s AllowThousands.A typical value to specify is Float combined with AllowThousands.

provider
IFormatProvider

IFormatProvider, která poskytuje informace o formátování specifické pro jazykovou verzi s.An IFormatProvider that supplies culture-specific formatting information about s.

result
Double

Když tato metoda vrátí, obsahuje číslo s plovoucí desetinnou čárkou s dvojitou přesností, který je ekvivalentní číselné hodnotě nebo symbolu obsažené v s, pokud byl převod úspěšný, nebo nula, pokud se převod nezdařil.When this method returns, contains a double-precision floating-point number equivalent of the numeric value or symbol contained in s, if the conversion succeeded, or zero if the conversion failed. Převod se nezdařil, pokud je parametr s null nebo Empty, není ve formátu, který je kompatibilní s style, představuje číslo menší než MinValue nebo větší než MaxValue, nebo pokud style není platná kombinace NumberStylesch výčtových konstant.The conversion fails if the s parameter is null or Empty, is not in a format compliant with style, represents a number less than MinValue or greater than MaxValue, or if style is not a valid combination of NumberStyles enumerated constants. Tento parametr se předává jako Neinicializovaný; jakákoli hodnota původně zadaná v result bude přepsána.This parameter is passed uninitialized; any value originally supplied in result will be overwritten.

Návraty

true, pokud s byl úspěšně převeden; v opačném případě false.true if s was converted successfully; otherwise, false.

Výjimky

style není NumberStyles hodnota.style is not a NumberStyles value.

-nebo--or- style obsahuje hodnotu AllowHexSpecifier.style includes the AllowHexSpecifier value.

Příklady

Následující příklad ukazuje použití metody Double.TryParse(String, NumberStyles, IFormatProvider, Double) k analýze řetězcové reprezentace čísel, které mají konkrétní styl a jsou formátovány pomocí konvencí konkrétní jazykové verze.The following example demonstrates the use of the Double.TryParse(String, NumberStyles, IFormatProvider, Double) method to parse the string representation of numbers that have a particular style and are formatted using the conventions of a particular culture.

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

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

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

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

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

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

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

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

value = "1 345,978"
If Double.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If    
' Displays:
'       Unable to convert '1 345,978'.

Poznámky

Metoda TryParse je podobná metodě Parse(String, NumberStyles, IFormatProvider), s výjimkou, že tato metoda nevyvolá výjimku, pokud se převod nezdařil.The TryParse method is like the Parse(String, NumberStyles, IFormatProvider) method, except this method does not throw an exception if the conversion fails. Pokud je převod úspěšný, návratová hodnota je true a parametr result je nastaven na výsledek převodu.If the conversion succeeds, the return value is true and the result parameter is set to the outcome of the conversion. Pokud se převod nezdařil, je návratová hodnota false a parametr result je nastaven na hodnotu nula.If the conversion fails, the return value is false and the result parameter is set to zero. Tím se eliminuje nutnost použít zpracování výjimek k otestování FormatException v události, že s je neplatné a nelze ji úspěšně analyzovat.This eliminates the need to use exception handling to test for a FormatException in the event that s is invalid and cannot be successfully parsed.

Parametr style definuje povolený formát parametru s, aby operace analýzy proběhla úspěšně.The style parameter defines the allowable format of the s parameter for the parse operation to succeed. Musí se jednat o kombinaci bitových příznaků z výčtu NumberStyles.It must be a combination of bit flags from the NumberStyles enumeration. Následující členové NumberStyles nejsou podporováni:The following NumberStyles members are not supported:

Parametr s může obsahovat NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbolnebo NumberFormatInfo.NaNSymbol pro jazykovou verzi uvedenou provider.The s parameter can contain NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, or NumberFormatInfo.NaNSymbol for the culture indicated by provider. Kromě toho, v závislosti na hodnotě style, s parametr může obsahovat následující prvky:In addition, depending on the value of style, the s parameter may include the following elements:

specifikace [$] osobě [celočíselné číslice,] integrální číslice [. zlomkové číslice] [e [znak] exponenciální-číslice] [ws][ws] [$] [sign][integral-digits,]integral-digits[.fractional-digits][e[sign]exponential-digits][ws]

Prvky v hranatých závorkách ([a]) jsou volitelné.Elements in square brackets ([ and ]) are optional. Následující tabulka popisuje jednotlivé prvky.The following table describes each element.

PrvekElement PopisDescription
specifikacews Volitelné prázdné místo.Optional white space. Pokud style obsahuje příznak NumberStyles.AllowLeadingWhite, může se na začátku s objevit prázdné znaky.White space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag. Může se zobrazit na konci s, pokud style obsahuje příznak NumberStyles.AllowTrailingWhite.It can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
$ Symbol měny pro konkrétní jazykovou verzi.A culture-specific currency symbol. Jeho pozice v řetězci je definována vlastností NumberFormatInfo.CurrencyNegativePattern nebo NumberFormatInfo.CurrencyPositivePattern objektu NumberFormatInfo vráceného metodou IFormatProvider.GetFormat parametru provider.Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern or NumberFormatInfo.CurrencyPositivePattern properties of the NumberFormatInfo object returned by the IFormatProvider.GetFormat method of the provider parameter. Symbol měny se může zobrazit v s, pokud style obsahuje příznak NumberStyles.AllowCurrencySymbol.The currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Nepovinný znak.An optional sign. Znaménko se může zobrazit na začátku s, pokud style obsahuje příznak NumberStyles.AllowLeadingSign a může se objevit na konci s Pokud style obsahuje příznak NumberStyles.AllowTrailingSign.The sign can appear at the beginning of s if style includes the NumberStyles.AllowLeadingSign flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingSign flag. Závorky lze použít v s k označení záporné hodnoty, pokud style obsahuje příznak NumberStyles.AllowParentheses.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
integrální čísliceintegral-digits Řada číslic od 0 do 9, které určují základní část čísla.A series of digits ranging from 0 to 9 that specify the integral part of the number. Číslice základu nemusí být uvedeny, pokud jsou uvedeny desetinné číslice.Integral-digits can be absent if there are fractional-digits.
,, Symbol oddělovače tisíců, specifický pro jazykovou verzi.A culture-specific thousands separator symbol. Symbol oddělovače tisíců aktuální jazykové verze se může objevit v s, pokud style obsahuje příznak NumberStyles.AllowThousands.The current culture's thousands separator symbol can appear in s if style includes the NumberStyles.AllowThousands flag.
.. Symbol desetinné čárky specifický pro jazykovou verzi.A culture-specific decimal point symbol. Symbol desetinné čárky aktuální jazykové verze se může objevit v s, pokud style obsahuje příznak NumberStyles.AllowDecimalPoint.The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
zlomkové číslicefractional-digits Řada číslic od 0 do 9, které určují desetinnou část čísla.A series of digits ranging from 0 to 9 that specify the fractional part of the number. Zlomkové číslice se můžou objevit v s, pokud style obsahuje příznak NumberStyles.AllowDecimalPoint.Fractional digits can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
cerebrálníe Znak e nebo E, který označuje, že s může představovat číslo pomocí exponenciálního zápisu.The e or E character, which indicates that s can represent a number using exponential notation. Parametr s může představovat číslo v exponenciální notaci, pokud style obsahuje příznak NumberStyles.AllowExponent.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
exponenciální – čísliceexponential-digits Řada číslic od 0 do 9, které určují exponent.A series of digits ranging from 0 to 9 that specify an exponent.

Poznámka

Všechny ukončující znaky NUL (U + 0000) ve s jsou ignorovány operací analýzy bez ohledu na hodnotu argumentu style.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Řetězec s pouze číslicemi (který odpovídá stylu NumberStyles.None) se vždy analyzuje úspěšně.A string with digits only (which corresponds to the NumberStyles.None style) always parses successfully. Zbývající prvky ovládacího prvku System.Globalization.NumberStyles členy, které mohou být ale ve vstupním řetězci nemusejí být přítomny.The remaining System.Globalization.NumberStyles members control elements that may be but are not required to be present in the input string. Následující tabulka uvádí, jak jednotlivé příznaky NumberStyles ovlivňují prvky, které mohou být přítomny v s.The following table indicates how individual NumberStyles flags affect the elements that may be present in s.

Hodnota NumberStylesNumberStyles value Prvky, které jsou povoleny v s, kromě číslicElements permitted in s in addition to digits
None Pouze element integrál-číslice .The integral-digits element only.
AllowDecimalPoint Rozhraní .The . a prvky zlomkové číslice .and fractional-digits elements.
AllowExponent Parametr s může také používat exponenciální zápis.The s parameter can also use exponential notation. Tento příznak sám o sobě podporuje hodnoty ve formátu integrál-čísliceEexponenciální číslice; Další příznaky jsou nutné pro úspěšné analyzování řetězců v exponenciálním zápisu s těmito prvky jako kladné nebo záporné znaménko a symboly desetinných míst.This flag by itself supports values in the form integral-digitsEexponential-digits; additional flags are needed to successfully parse strings in exponential notation with such elements as positive or negative signs and decimal point symbols.
AllowLeadingWhite Element WS na začátku s.The ws element at the beginning of s.
AllowTrailingWhite Element WS na konci s.The ws element at the end of s.
AllowLeadingSign Element Sign na začátku s.The sign element at the beginning of s.
AllowTrailingSign Element Sign na konci s.The sign element at the end of s.
AllowParentheses Element Sign ve formě závorek, který obklopuje číselnou hodnotu.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands Element , .The , element.
AllowCurrencySymbol Element $ .The $ element.
Currency Všechny.All. Parametr s nemůže představovat šestnáctkové číslo ani číslo v exponenciální notaci.The s parameter cannot represent a hexadecimal number or a number in exponential notation.
Float Element WS na začátku nebo konci s, podepsat na začátku s a .The ws element at the beginning or end of s, sign at the beginning of s, and the . písmeno.symbol. Parametr s může také používat exponenciální zápis.The s parameter can also use exponential notation.
Number Prvky ws, sign, oddělovače tisíců (,) a desetinná čárka (.).The ws, sign, thousands separator (,), and decimal point (.) elements.
Any Všechny styly s výjimkou s nemohou představovat hexadecimální číslo.All styles, except s cannot represent a hexadecimal number.

Parametr provider je implementace IFormatProvider, například objekt NumberFormatInfo nebo CultureInfo.The provider parameter is a IFormatProvider implementation, such as a NumberFormatInfo or CultureInfo object. Parametr provider dodává informace specifické pro jazykovou verzi používané při analýze.The provider parameter supplies culture-specific information used in parsing. Je-li provider null nebo nelze získat objekt NumberFormatInfo, je použita informace o formátu pro aktuální jazykovou verzi.If provider is null or a NumberFormatInfo object cannot be obtained, the format information for the current culture is used.

Převod se nezdařil, pokud je parametr s null nebo není číselná hodnota, parametr provider nepřinese objekt NumberFormatInfo, nebo parametr style není kombinací bitových příznaků z NumberStyles výčtu.The conversion fails if the s parameter is null or not a numeric value, the provider parameter does not yield a NumberFormatInfo object, or the style parameter is not a combination of bit flags from the NumberStyles enumeration.

Obvykle Pokud předáte Double.TryParse metodu, která je vytvořena voláním metody Double.ToString, je vrácena původní hodnota Double.Ordinarily, if you pass the Double.TryParse method a string that is created by calling the Double.ToString method, the original Double value is returned. Z důvodu ztráty přesnosti nemusí být hodnoty stejné.However, because of a loss of precision, the values may not be equal. Kromě toho se při pokusu o analýzu řetězcové reprezentace buď MinValue, nebo MaxValue vyvolá OverflowException, jak ukazuje následující příklad.In addition, attempting to parse the string representation of either MinValue or MaxValue throws an OverflowException, as the following example illustrates.

using System;

public class Example
{
   public static void Main()
   {
      string value;
      double number;
      
      value = Double.MinValue.ToString();
      if (Double.TryParse(value, out number))
         Console.WriteLine(number);
      else
         Console.WriteLine("{0} is outside the range of a Double.", 
                           value);
      
      value = Double.MaxValue.ToString();
      if (Double.TryParse(value, out number))
         Console.WriteLine(number);
      else
         Console.WriteLine("{0} is outside the range of a Double.",
                           value);
   }
}
// The example displays the following output:
//    -1.79769313486232E+308 is outside the range of the Double type.
//    1.79769313486232E+308 is outside the range of the Double type.            
Module Example
   Public Sub Main()
      Dim value As String
      Dim number As Double
      
      value = Double.MinValue.ToString()
      If Double.TryParse(value, number) Then
         Console.WriteLine(number)
      Else
         Console.WriteLine("{0} is outside the range of a Double.", _
                           value)
      End If
      
      value = Double.MaxValue.ToString()
      If Double.TryParse(value, number) Then
         Console.WriteLine(number)
      Else
         Console.WriteLine("{0} is outside the range of a Double.", _
                           value)
      End If
   End Sub
End Module
' The example displays the following output:
'    -1.79769313486232E+308 is outside the range of the Double type.
'    1.79769313486232E+308 is outside the range of the Double type.            

Pokud se v parametru s během operace analýzy objevil oddělovač a v případě, že je stejná Měna nebo číslo desítkové soustavy a oddělovače skupin stejné, operace analýzy předpokládá, že oddělovač je oddělovač desetinných míst, nikoli oddělovač skupiny.If a separator is encountered in the s parameter during a parse operation, and the applicable currency or number decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. Další informace o oddělovačích naleznete v tématu CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatora NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Viz také

Platí pro