Double.TryParse Double.TryParse Double.TryParse Double.TryParse Method

Definition

Konvertiert die Zeichenfolgendarstellung einer Zahl in die entsprechende Gleitkommazahl mit doppelter Genauigkeit.Converts the string representation of a number to its double-precision floating-point number equivalent. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.A return value indicates whether the conversion succeeded or failed.

Überlädt

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

Konvertiert die Zeichenfolgendarstellung einer Zahl in die entsprechende Gleitkommazahl mit doppelter Genauigkeit.Converts the string representation of a number to its double-precision floating-point number equivalent. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.A return value indicates whether the conversion succeeded or failed.

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

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende Gleitkommazahl mit doppelter Genauigkeit.Converts the string representation of a number in a specified style and culture-specific format to its double-precision floating-point number equivalent. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.A return value indicates whether the conversion succeeded or failed.

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

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 *  -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Double) As Boolean

Parameter

Gibt zurück

TryParse(String, Double) TryParse(String, Double) TryParse(String, Double) TryParse(String, Double)

Konvertiert die Zeichenfolgendarstellung einer Zahl in die entsprechende Gleitkommazahl mit doppelter Genauigkeit.Converts the string representation of a number to its double-precision floating-point number equivalent. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.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 *  -> bool
Public Shared Function TryParse (s As String, ByRef result As Double) As Boolean

Parameter

s
String String String String

Eine Zeichenfolge, die die zu konvertierende Zahl enthält.A string containing a number to convert.

result
Double Double Double Double

Wenn diese Methode zurückgegeben wird, enthält sie bei erfolgreicher Konvertierung eine Gleitkommazahl mit doppelter Genauigkeit, die dem s-Parameter entspricht, oder 0 (null), wenn die Konvertierung fehlgeschlagen ist.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. Bei der Konvertierung tritt ein Fehler auf, wenn der s-Parameter null oder Empty ist, keine Zahl in einem gültigen Format ist oder eine Zahl kleiner als MinValue oder größer als MaxValue ist.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. Dieser Parameter wird nicht initialisiert übergeben. Jeder Wert, der ursprünglich im bereitgestellten result überschrieben werden.This parameter is passed uninitialized; any value originally supplied in result will be overwritten.

Gibt zurück

true, wenn s erfolgreich konvertiert wurde, andernfalls false.true if s was converted successfully; otherwise, false.

Beispiele

Im folgenden Beispiel wird die TryParse(String, Double) konvertiert die zeichenfolgendarstellungen von numerischen Werten für die Methode Double Werte.The following example uses the TryParse(String, Double) method to convert the string representations of numeric values to Double values. Es wird davon ausgegangen, dass diese En-US, die aktuelle Kultur ist.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'.

Hinweise

Diese Überladung unterscheidet sich von der Double.Parse(String) Methode durch einen booleschen Wert, der angibt, ob der Analysevorgang erfolgreich war, anstatt den analysierten numerischen Wert zurückgeben.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. Es entfällt die Notwendigkeit, eine Ausnahmebehandlung verwendet wird, zum Prüfen auf eine FormatException , s ist ungültig und kann nicht erfolgreich analysiert werden kann.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.

Die s Parameter kann der aktuellen Kultur enthalten NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, NumberFormatInfo.NaNSymbol (beim Vergleich der Zeichenfolgen wird beachtet), oder eine Zeichenfolge der Form: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:

[ws] [SSO] [ganzzahligen Ziffern,] Ganzzahl-Ziffern [. [ Bruchziffern]] [e [Sign] exponentiellen-Ziffern] [ws][ws][sign][integral-digits,]integral-digits[.[fractional-digits]][e[sign]exponential-digits][ws]

Elemente in eckigen Klammern sind optional.Elements in square brackets are optional. In der folgenden Tabelle wird jedes Element beschrieben.The following table describes each element.

ElementElement Beschreibung Description
wsws Eine Reihe von Leerzeichen.A series of white-space characters.
signsign Ein negatives Vorzeichen oder das Pluszeichen.A negative sign or positive sign symbol.
integral-digitsintegral-digits Eine Reihe von numerischen Zeichen, die im Bereich von 0 bis 9, die den ganzzahligen Teil der Zahl angeben.A series of numeric characters ranging from 0 to 9 that specify the integral part of the number. Ganzzahl-Ziffern nicht vorhanden sein können Wenn Bruchziffern vorhanden sind.Integral-digits can be absent if there are fractional-digits.
,, Eine kulturspezifische Gruppentrennzeichen.A culture-specific group separator symbol.
.. Eine kulturspezifische Dezimaltrennzeichen.A culture-specific decimal point symbol.
fractional-digitsfractional-digits Eine Reihe von numerischen Zeichen, die im Bereich von 0 bis 9, die die Nachkommastellen der Zahl angeben.A series of numeric characters ranging from 0 to 9 that specify the fractional part of the number.
EE Ein klein-oder Großbuchstaben und Zeichen 'e', der Exponentialschreibweise (wissenschaftlich) angibt.An uppercase or lowercase character 'e', that indicates exponential (scientific) notation.
exponential-digitsexponential-digits Eine Reihe von numerischen Zeichen, die im Bereich von 0 bis 9, die einen Exponenten angeben.A series of numeric characters ranging from 0 to 9 that specify an exponent.

Weitere Informationen über numerische Formate finden Sie unter Formatierung von Typen.For more information about numeric formats, see Formatting Types.

Die s Parameter wird mithilfe einer Kombination von interpretiert die NumberStyles.Float und NumberStyles.AllowThousands Flags.The s parameter is interpreted by using a combination of the NumberStyles.Float and NumberStyles.AllowThousands flags. Dies bedeutet, dass Leerraum und Tausende Trennzeichen zulässig sind Währungssymbole sind jedoch nicht.This means that white space and thousands separators are allowed but currency symbols are not. Die Elemente explizit zu definieren (wie Währungssymbole, Tausende Trennzeichen und Leerraum) in vorhanden sein können s, verwenden die Double.TryParse(String, NumberStyles, IFormatProvider, Double) -methodenüberladung.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.

Die s -Parameter wird analysiert, die unter Verwendung der Formatierungsinformationen in eine NumberFormatInfo -Objekt, das für die aktuelle Systemkultur initialisiert wird.The s parameter is parsed using the formatting information in a NumberFormatInfo object that is initialized for the current system culture. Weitere Informationen finden Sie unter NumberFormatInfo.CurrentInfo.For more information, see NumberFormatInfo.CurrentInfo. Analysieren eine Zeichenfolge unter Verwendung der Formatierungsinformationen in einer anderen Kultur angegeben, verwenden Sie die Double.TryParse(String, NumberStyles, IFormatProvider, Double) -methodenüberladung.To parse a string using the formatting information of some other specified culture, use the Double.TryParse(String, NumberStyles, IFormatProvider, Double) method overload.

Normalerweise übergeben die Double.TryParse Methode eine Zeichenfolge, die durch den Aufruf erstellt wird die Double.ToString -Methode, die ursprünglichen Double Wert wird zurückgegeben.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. Jedoch können aufgrund einer Unterbrechung der Genauigkeit, die Werte sein nicht gleich.However, because of a loss of precision, the values may not be equal. Darüber hinaus versucht beim Analysieren der Zeichenfolgendarstellung eines MinValue oder MaxValue löst eine OverflowException, wie im folgende Beispiel veranschaulicht.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.            

Wenn eine Trennzeichen, in gefunden wird der s Parameter bei einem Analysevorgang, und die Trennzeichen decimal "und" Gruppe identisch sind, die der Analysevorgang wird davon ausgegangen, dass das Trennzeichen ein Dezimaltrennzeichen und ein Gruppentrennzeichen ist.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. Weitere Informationen zu den Trennzeichen, finden Sie unter CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, und NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Siehe auch

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

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> *  -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Double) As Boolean

Parameter

Gibt zurück

TryParse(String, NumberStyles, IFormatProvider, Double) TryParse(String, NumberStyles, IFormatProvider, Double) TryParse(String, NumberStyles, IFormatProvider, Double) TryParse(String, NumberStyles, IFormatProvider, Double)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende Gleitkommazahl mit doppelter Genauigkeit.Converts the string representation of a number in a specified style and culture-specific format to its double-precision floating-point number equivalent. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.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 *  -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Double) As Boolean

Parameter

s
String String String String

Eine Zeichenfolge, die die zu konvertierende Zahl enthält.A string containing a number to convert.

style
NumberStyles NumberStyles NumberStyles NumberStyles

Eine bitweise Kombination von NumberStyles-Werten, die das zulässige Format von s angibt.A bitwise combination of NumberStyles values that indicates the permitted format of s. Ein häufig angegebener Wert ist Float in Kombination mit AllowThousands.A typical value to specify is Float combined with AllowThousands.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Eine IFormatProvider-Schnittstelle, die kulturspezifische Formatierungsinformationen zu s bereitstellt.An IFormatProvider that supplies culture-specific formatting information about s.

result
Double Double Double Double

Diese Methode gibt bei erfolgreicher Konvertierung eine Gleitkommazahl mit doppelter Genauigkeit zurück, die dem numerischen Wert oder dem im s-Parameter enthaltenen Symbol entspricht, oder 0 (null), wenn die Konvertierung fehlgeschlagen ist.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. Die Konvertierung kann nicht durchgeführt werden, wenn der s-Parameter null oder Empty ist, kein mit style kompatibles Format aufweist, eine Zahl kleiner als MinValue oder größer als MaxValue darstellt, oder wenn style keine gültige Kombination von NumberStyles-Enumerationskonstanten ist.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. Dieser Parameter wird nicht initialisiert übergeben. Jeder Wert, der ursprünglich im bereitgestellten result überschrieben werden.This parameter is passed uninitialized; any value originally supplied in result will be overwritten.

Gibt zurück

true, wenn s erfolgreich konvertiert wurde, andernfalls false.true if s was converted successfully; otherwise, false.

Ausnahmen

style ist kein NumberStyles-Wert.style is not a NumberStyles value.

- oder --or- style enthält den AllowHexSpecifier-Wert.style includes the AllowHexSpecifier value.

Beispiele

Das folgende Beispiel zeigt die Verwendung der Double.TryParse(String, NumberStyles, IFormatProvider, Double) Methode, um die Zeichenfolgendarstellung von Zahlen zu analysieren, die einen bestimmten nachrichtenstil und mit den Konventionen einer bestimmten Kultur formatiert.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'.

Hinweise

Die TryParse Methode entspricht der Parse(String, NumberStyles, IFormatProvider) Methode, außer diese Methode keine Ausnahme auslöst, wenn die Konvertierung schlägt fehl.The TryParse method is like the Parse(String, NumberStyles, IFormatProvider) method, except this method does not throw an exception if the conversion fails. Wenn die Konvertierung erfolgreich ist, wird der Rückgabewert ist true und result Parameter auf das Ergebnis der Konvertierung festgelegt ist.If the conversion succeeds, the return value is true and the result parameter is set to the outcome of the conversion. Wenn die Konvertierung fehlschlägt, wird der Rückgabewert ist false und result Parameter auf 0 (null) festgelegt ist.If the conversion fails, the return value is false and the result parameter is set to zero. Hierdurch entfällt die Notwendigkeit, Ausnahmebehandlung zu verwenden, um zu testen einer FormatException , s ist ungültig und kann nicht erfolgreich analysiert werden kann.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.

Die style Parameter definiert das zulässige Format von der s Parameter, damit der Analysevorgang erfolgreich ist.The style parameter defines the allowable format of the s parameter for the parse operation to succeed. Es muss eine Kombination von Bitflags aus den NumberStyles Enumeration.It must be a combination of bit flags from the NumberStyles enumeration. Die folgenden NumberStyles Member werden nicht unterstützt:The following NumberStyles members are not supported:

Die s kann Parameter enthalten NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, oder NumberFormatInfo.NaNSymbol für die Kultur, angegeben durch provider.The s parameter can contain NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, or NumberFormatInfo.NaNSymbol for the culture indicated by provider. Darüber hinaus, abhängig vom Wert style, s Parameter die folgenden Elemente enthalten:In addition, depending on the value of style, the s parameter may include the following elements:

[ws] [$] [SSO] [ganzzahligen Ziffern,] [.fractional-Ziffern] [e [Sign] exponentiellen-Ziffern] Ganzzahl-Ziffern [ws][ws] [$] [sign][integral-digits,]integral-digits[.fractional-digits][e[sign]exponential-digits][ws]

Elemente in eckigen Klammern ([ und ]) sind optional.Elements in square brackets ([ and ]) are optional. In der folgenden Tabelle wird jedes Element beschrieben.The following table describes each element.

ElementElement Beschreibung Description
wsws Optionalen Leerzeichen.Optional white space. Leerzeichen am Anfang stehen s Wenn style enthält die NumberStyles.AllowLeadingWhite Flag.White space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag. Es kann angezeigt werden, am Ende der s Wenn style enthält die NumberStyles.AllowTrailingWhite Flag.It can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
$ Eine kulturspezifische Währungssymbol.A culture-specific currency symbol. Seine Position in der Zeichenfolge wird definiert, durch die NumberFormatInfo.CurrencyNegativePattern oder NumberFormatInfo.CurrencyPositivePattern Eigenschaften der NumberFormatInfo zurückgegebenes Objekt der IFormatProvider.GetFormat -Methode der der provider Parameter.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. Das Währungssymbol angezeigt werden kann, im s Wenn style enthält die NumberStyles.AllowCurrencySymbol Flag.The currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Einem optionalen Vorzeichen.An optional sign. Die Zeichen am Anfang stehen s Wenn style enthält die NumberStyles.AllowLeadingSign Flag, und es können angezeigt werden, am Ende der s Wenn style enthält die NumberStyles.AllowTrailingSign Flag.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. Klammern können verwendet werden, s um einen negativen Wert anzugeben, ob style enthält die NumberStyles.AllowParentheses Flag.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
integral-digitsintegral-digits Eine Folge von Ziffern zwischen 0 und 9, die den ganzzahligen Teil der Zahl angeben.A series of digits ranging from 0 to 9 that specify the integral part of the number. Ganzzahl-Ziffern nicht vorhanden sein können Wenn Bruchziffern vorhanden sind.Integral-digits can be absent if there are fractional-digits.
,, Ein Tausendertrennzeichen kulturspezifische Trennzeichen-Symbol.A culture-specific thousands separator symbol. Tausende von der aktuellen Kultur als Trennzeichen kann angezeigt werden, s Wenn style enthält die NumberStyles.AllowThousands Flag.The current culture's thousands separator symbol can appear in s if style includes the NumberStyles.AllowThousands flag.
.. Eine kulturspezifische Dezimaltrennzeichen.A culture-specific decimal point symbol. In der aktuellen Kultur Dezimaltrennzeichen angezeigt werden kann s Wenn style enthält die NumberStyles.AllowDecimalPoint Flag.The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
fractional-digitsfractional-digits Eine Folge von Ziffern zwischen 0 und 9, die die Nachkommastellen der Zahl angeben.A series of digits ranging from 0 to 9 that specify the fractional part of the number. Bruchziffern können angezeigt werden, s Wenn style enthält die NumberStyles.AllowDecimalPoint Flag.Fractional digits can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
ee Das e oder E-Zeichen, der angibt, dass s kann eine Zahl, die mit der Exponentialschreibweise darstellen.The e or E character, which indicates that s can represent a number using exponential notation. Die s Parameter kann eine Zahl in Exponentialschreibweise darstellen, wenn Style enthält die NumberStyles.AllowExponent Flag.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
exponential-digitsexponential-digits Eine Folge von Ziffern zwischen 0 und 9, die einen Exponenten angeben.A series of digits ranging from 0 to 9 that specify an exponent.

Hinweis

Alle abschließenden NULL (U + 0000)-Zeichen im s werden ignoriert, durch den Analysevorgang, unabhängig vom Wert für die style Argument.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Eine Zeichenfolge mit der nur Ziffern (Dies entspricht der NumberStyles.None Stil) immer erfolgreich analysiert.A string with digits only (which corresponds to the NumberStyles.None style) always parses successfully. Die verbleibenden System.Globalization.NumberStyles Elemente steuern, Elemente, die möglicherweise sind jedoch nicht erforderlich, in der Eingabezeichenfolge vorhanden sein muss.The remaining System.Globalization.NumberStyles members control elements that may be but are not required to be present in the input string. Die folgende Tabelle gibt an, wie einzelne NumberStyles Flags wirken sich auf die Elemente, die ggf. im s.The following table indicates how individual NumberStyles flags affect the elements that may be present in s.

NumberStyles-WertNumberStyles value Elemente in s neben Ziffern zulässigElements permitted in s in addition to digits
None Die ganzzahligen Ziffern nur-Element.The integral-digits element only.
AllowDecimalPoint Das Sprachelement .The . und Bruchziffern Elemente.and fractional-digits elements.
AllowExponent Die s Parameter können Sie auch Exponentialschreibweise.The s parameter can also use exponential notation. Dieses Flag selbst unterstützt Werte im Formular ganzzahligen ZiffernEExponenten-Ziffern; zusätzliche Flags sind erforderlich, um die erfolgreichen Analysieren von Zeichenfolgen in Exponentialschreibweise mit Elementen wie positives oder negatives Vorzeichen und ein Dezimaltrennzeichen.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 Die ws Element am Anfang des s.The ws element at the beginning of s.
AllowTrailingWhite Die ws Element am Ende der s.The ws element at the end of s.
AllowLeadingSign Die anmelden Element am Anfang des s.The sign element at the beginning of s.
AllowTrailingSign Die anmelden Element am Ende der s.The sign element at the end of s.
AllowParentheses Die anmelden Element in Form von Klammern, die den numerischen Wert einschließen.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands Die , Element.The , element.
AllowCurrencySymbol Die $ Element.The $ element.
Currency AlleAll. Die s -Parameter kann keine hexadezimale Zahl oder einer Zahl in Exponentialschreibweise darstellen.The s parameter cannot represent a hexadecimal number or a number in exponential notation.
Float Die ws Element am Anfang oder Ende des s, anmelden am Anfang des s, und die .The ws element at the beginning or end of s, sign at the beginning of s, and the . Symbol.symbol. Die s Parameter können Sie auch Exponentialschreibweise.The s parameter can also use exponential notation.
Number Die ws, sign, Tausende Trennzeichen (,), und Dezimaltrennzeichen (.) Elemente.The ws, sign, thousands separator (,), and decimal point (.) elements.
Any Alle Stile mit Ausnahme von s eine hexadezimale Zahl nicht darstellen kann.All styles, except s cannot represent a hexadecimal number.

Die provider -Parameter ist ein IFormatProvider Implementierung, wie z. B. eine NumberFormatInfo oder CultureInfo Objekt.The provider parameter is a IFormatProvider implementation, such as a NumberFormatInfo or CultureInfo object. Die provider Parameter liefert kulturspezifische Informationen, die bei der Analyse verwendet.The provider parameter supplies culture-specific information used in parsing. Wenn provider ist null oder NumberFormatInfo Objekt kann nicht abgerufen werden, wird die Formatinformationen für die aktuelle Kultur verwendet.If provider is null or a NumberFormatInfo object cannot be obtained, the format information for the current culture is used.

Die Konvertierung schlägt fehl, wenn die s -Parameter ist null oder nicht in einen numerischen Wert, der provider Parameter ergibt keine NumberFormatInfo Objekt oder die style Parameter ist keine Kombination von Bitflags aus der NumberStyles -Enumeration.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.

Normalerweise übergeben die Double.TryParse Methode eine Zeichenfolge, die durch den Aufruf erstellt wird die Double.ToString -Methode, die ursprünglichen Double Wert wird zurückgegeben.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. Jedoch können aufgrund einer Unterbrechung der Genauigkeit, die Werte sein nicht gleich.However, because of a loss of precision, the values may not be equal. Darüber hinaus versucht beim Analysieren der Zeichenfolgendarstellung eines MinValue oder MaxValue löst eine OverflowException, wie im folgende Beispiel veranschaulicht.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.            

Wenn Sie ein Trennzeichen gefunden wird die s Parameter bei einem Analysevorgang, und die geltenden Währung oder Zahl, Dezimalzahl und Gruppentrennzeichen sind identisch, die der Analysevorgang wird davon ausgegangen, dass das Trennzeichen ein Dezimaltrennzeichen anstelle einer Gruppe Trennzeichen.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. Weitere Informationen zu den Trennzeichen, finden Sie unter CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, und NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Siehe auch

Gilt für: