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) -Methode verwendet, um die Zeichen folgen Darstellungen numerischer Werte in-Werte zu Double konvertieren.The following example uses the TryParse(String, Double) method to convert the string representations of numeric values to Double values. Dabei wird davon ausgegangen, dass "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 Double.Parse(String) sich von der-Methode, indem ein boolescher Wert zurückgegeben wird, der angibt, ob der Analyse Vorgang erfolgreich war, anstatt den analysierten numerischen Wert zurückzugeben.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, dass die Ausnahmebehandlung verwendet werden muss, um FormatException ein im Ereignis zu s testen, das ungültig ist und 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.

Der s NumberFormatInfo.NegativeInfinitySymbol NumberFormatInfo.NaNSymbol - NumberFormatInfo.PositiveInfinitySymbolParameter kann die aktuelle Kultur,, (der Zeichen folgen Vergleich unter Beachtung der Groß-/Kleinschreibung) oder eine Zeichenfolge in der Form enthalten: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:

Gefangener Gebärden [integrale Ziffern,] ganzzahlige Ziffern [. [ Bruch Ziffern]] [e [Sign] exponentialziffern] [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 BeschreibungDescription
wsws Eine Reihe von Leerzeichen.A series of white-space characters.
signsign Ein negatives Vorzeichen-oder positives Vorzeichen Symbol.A negative sign or positive sign symbol.
integral-digitsintegral-digits Eine Reihe von numerischen Zeichen 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. Ganzzahlige Ziffern können nicht vorhanden sein, wenn es sich um Bruch Ziffern handelt.Integral-digits can be absent if there are fractional-digits.
,, Ein kulturspezifisches Gruppen Trennzeichen.A culture-specific group separator symbol.
.. Ein kulturspezifisches Dezimaltrennzeichen.A culture-specific decimal point symbol.
fractional-digitsfractional-digits Eine Reihe von numerischen Zeichen im Bereich von 0 bis 9, die den Bruchteil der Zahl angeben.A series of numeric characters ranging from 0 to 9 that specify the fractional part of the number.
EE Ein Großbuchstabe oder ein Kleinbuchstabe "e", der die exponentielle (wissenschaftliche) Notation angibt.An uppercase or lowercase character 'e', that indicates exponential (scientific) notation.
exponential-digitsexponential-digits Eine Reihe von numerischen Zeichen 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 zu numerischen Formaten finden Sie unter Formatieren von Typen.For more information about numeric formats, see Formatting Types.

Der s NumberStyles.Float -Parameter wird mit einer Kombination der-und NumberStyles.AllowThousands -Flags interpretiert.The s parameter is interpreted by using a combination of the NumberStyles.Float and NumberStyles.AllowThousands flags. Dies bedeutet, dass Leerzeichen und Tausender Trennzeichen zulässig sind, aber Währungssymbole nicht.This means that white space and thousands separators are allowed but currency symbols are not. Verwenden Sie die Double.TryParse(String, NumberStyles, IFormatProvider, Double) -Methoden Überladung, um die Elemente explizit zu definieren (z. b. Währungssymbole, Tausende Trenn sZeichen und Leerzeichen), die in vorhanden sein können.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.

Der s -Parameter wird mithilfe der Formatierungsinformationen in einem NumberFormatInfo -Objekt analysiert, das für die aktuelle System Kultur 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. Verwenden Sie die Double.TryParse(String, NumberStyles, IFormatProvider, Double) -Methoden Überladung, um eine Zeichenfolge mit den Formatierungsinformationen einer anderen angegebenen Kultur zu analysieren.To parse a string using the formatting information of some other specified culture, use the Double.TryParse(String, NumberStyles, IFormatProvider, Double) method overload.

Wenn Sie der Double.TryParse -Methode eine Zeichenfolge übergeben, die durch den Aufruf der Double.ToString -Methode erstellt wird Double , wird normalerweise der ursprüngliche Wert 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. Aufgrund eines Genauigkeits Verlusts sind die Werte jedoch möglicherweise nicht gleich.However, because of a loss of precision, the values may not be equal. Außerdem wird beim Versuch, die Zeichen folgen Darstellung von entweder MinValue oder MaxValue zu analysieren, OverflowExceptioneine ausgelöst, wie im folgenden 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 im s -Parameter während eines Analyse Vorgangs ein Trennzeichen gefunden wird und die Dezimal-und Gruppen Trennzeichen identisch sind, geht der Analyse Vorgang davon aus, dass das Trennzeichen anstelle eines Gruppen Trennzeichens ein Dezimaltrennzeichen 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 CurrencyDecimalSeparatorzu Trennzeichen finden Sie unter, NumberDecimalSeparator, CurrencyGroupSeparatorund. NumberGroupSeparatorFor 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

Im folgenden Beispiel wird veranschaulicht, wie die Double.TryParse(String, NumberStyles, IFormatProvider, Double) -Methode verwendet wird, um die Zeichen folgen Darstellung von Zahlen zu analysieren, die einen bestimmten Stil aufweisen und mit den Konventionen einer bestimmten Kultur formatiert werden.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 ähnelt der Parse(String, NumberStyles, IFormatProvider) -Methode, außer diese Methode löst keine Ausnahme aus, wenn bei der Konvertierung ein Fehler auftritt.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, ist true der Rückgabewert, und der result -Parameter wird auf das Ergebnis der Konvertierung festgelegt.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, ist false der Rückgabewert, und der result -Parameter wird auf 0 (null) festgelegt.If the conversion fails, the return value is false and the result parameter is set to zero. Dadurch ist es nicht mehr erforderlich, die Ausnahmebehandlung zu verwenden FormatException , um ein im s Ereignis zu testen, das ungültig ist und 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.

Der style -Parameter definiert das zulässige Format s des-Parameters, damit der Analyse Vorgang erfolgreich ausgeführt wird.The style parameter defines the allowable format of the s parameter for the parse operation to succeed. Dabei muss es sich um eine Kombination von Bitflags aus der NumberStyles -Enumeration handeln.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:

Der s -Parameter kann NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymboloder NumberFormatInfo.NaNSymbol für die Kultur enthalten, die providerdurch angegeben wird.The s parameter can contain NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, or NumberFormatInfo.NaNSymbol for the culture indicated by provider. Außerdem kann der s -Parameter abhängig vom Wert stylevon die folgenden Elemente enthalten:In addition, depending on the value of style, the s parameter may include the following elements:

Gefangener [$] Gebärden [ganzzahlige Ziffern,] ganzzahlige Ziffern [. Bruch Ziffern] [e [Sign] exponentialziffern] [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 BeschreibungDescription
wsws Optionaler Leerraum.Optional white space. Leerraum kann am Anfang von s angezeigt werden, wenn style das NumberStyles.AllowLeadingWhite -Flag enthält.White space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag. Sie kann am Ende von s angezeigt werden, wenn style das NumberStyles.AllowTrailingWhite -Flag enthält.It can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
$ Ein kulturspezifisches Währungssymbol.A culture-specific currency symbol. Die Position in der Zeichenfolge wird durch die NumberFormatInfo.CurrencyNegativePattern - NumberFormatInfo.CurrencyPositivePattern Eigenschaft oder die NumberFormatInfo -Eigenschaft des von IFormatProvider.GetFormat der-Methode provider des-Parameters zurückgegebenen-Objekts definiert.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 kann in s angezeigt werden, wenn NumberStyles.AllowCurrencySymbol style das-Flag enthält.The currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Ein optionales Vorzeichen.An optional sign. Das Vorzeichen kann am Anfang von s angezeigt werden, wenn style das NumberStyles.AllowLeadingSign -Flag enthält, und es kann am Ende von s angezeigt style werden, NumberStyles.AllowTrailingSign wenn das-Flag enthält.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 in s verwendet werden, um einen negativen Wert anzugeben, wenn style das NumberStyles.AllowParentheses -Flag einschließt.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
integral-digitsintegral-digits Eine Reihe von Ziffern im Bereich von 0 bis 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. Ganzzahlige Ziffern können nicht vorhanden sein, wenn es sich um Bruch Ziffern handelt.Integral-digits can be absent if there are fractional-digits.
,, Ein kulturspezifisches Tausender Trennzeichen.A culture-specific thousands separator symbol. Das Tausender Trennzeichen der aktuellen Kultur kann in s auftreten, wenn style das NumberStyles.AllowThousands -Flag enthält.The current culture's thousands separator symbol can appear in s if style includes the NumberStyles.AllowThousands flag.
.. Ein kulturspezifisches Dezimaltrennzeichen.A culture-specific decimal point symbol. Das Dezimaltrennzeichen der aktuellen Kultur kann in s auftreten, wenn style das NumberStyles.AllowDecimalPoint -Flag enthält.The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
fractional-digitsfractional-digits Eine Reihe von Ziffern im Bereich von 0 bis 9, die den Bruch Teil der Zahl angeben.A series of digits ranging from 0 to 9 that specify the fractional part of the number. Bruch Ziffern können in s auftreten, wenn style das NumberStyles.AllowDecimalPoint -Flag enthält.Fractional digits can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
ee Das e-oder e-Zeichen, das s angibt, dass eine Zahl mit exponentieller Notation darstellen kann.The e or E character, which indicates that s can represent a number using exponential notation. Der s -Parameter kann eine Zahl in Exponentialnotation darstellen, wenn NumberStyles.AllowExponent Style das-Flag enthält.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
exponential-digitsexponential-digits Eine Reihe von Ziffern im Bereich von 0 bis 9, die einen Exponenten angeben.A series of digits ranging from 0 to 9 that specify an exponent.

Hinweis

Alle abschließenden NUL-Zeichen (U + 0000) s in werden vom Analyse-Vorgang unabhängig vom Wert style des Arguments ignoriert.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Eine Zeichenfolge, die nur Ziffern (die dem NumberStyles.None Format entspricht) entspricht, wird immer erfolgreich analysiert.A string with digits only (which corresponds to the NumberStyles.None style) always parses successfully. Die übrigen System.Globalization.NumberStyles Member steuern Elemente, die möglicherweise nicht in der Eingabe Zeichenfolge vorhanden sind, jedoch nicht erforderlich sind.The remaining System.Globalization.NumberStyles members control elements that may be but are not required to be present in the input string. In der folgenden Tabelle wird angegeben NumberStyles , wie die einzelnen Flags die Elemente beeinflussen, sdie möglicherweise in vorhanden sind.The following table indicates how individual NumberStyles flags affect the elements that may be present in s.

NumberStyles-WertNumberStyles value In s zulässige Elemente zusätzlich zu ZiffernElements permitted in s in addition to digits
None Nur das ganzzahlige Ziffern Element.The integral-digits element only.
AllowDecimalPoint Das Sprachelement .The . und Bruch Ziffern Elemente.and fractional-digits elements.
AllowExponent Der s -Parameter kann auch die Exponentialnotation verwenden.The s parameter can also use exponential notation. Dieses Flag allein unterstützt Werte in der Form ganzzahlige ZiffernEexponentialziffern. zusätzliche Flags sind erforderlich, um Zeichen folgen in Exponentialnotation mit solchen Elementen wie positive oder negative Vorzeichen und Dezimaltrennzeichen erfolgreich zu analysieren.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 Das WS -Element am Anfang von s.The ws element at the beginning of s.
AllowTrailingWhite Das WS -Element am Ende von s.The ws element at the end of s.
AllowLeadingSign Das Sign -Element am Anfang von s.The sign element at the beginning of s.
AllowTrailingSign Das Sign -Element am Ende von s.The sign element at the end of s.
AllowParentheses Das Vorzeichen Element in der Form von Klammern, das den numerischen Wert einschließt.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands Das ** -Element.The , element.
AllowCurrencySymbol Das $ Element.The $ element.
Currency AlleAll. Der s -Parameter kann keine hexadezimal Zahl oder eine Zahl in Exponentialnotation darstellen.The s parameter cannot represent a hexadecimal number or a number in exponential notation.
Float Das WS -Element am Anfang oder Ende von s signiert am Anfang von sund .The ws element at the beginning or end of s, sign at the beginning of s, and the . Tick.symbol. Der s -Parameter kann auch die Exponentialnotation verwenden.The s parameter can also use exponential notation.
Number Die wsElemente sign,, Tausender Trennzeichen (,) und Dezimaltrennzeichen (.).The ws, sign, thousands separator (,), and decimal point (.) elements.
Any Alle Stile, außer s können keine hexadezimal Zahl darstellen.All styles, except s cannot represent a hexadecimal number.

Der provider -Parameter ist IFormatProvider eine-Implementierung, z NumberFormatInfo . CultureInfo b. ein-oder-Objekt.The provider parameter is a IFormatProvider implementation, such as a NumberFormatInfo or CultureInfo object. Der provider -Parameter liefert kulturspezifische Informationen, die beim Parsen verwendet werden.The provider parameter supplies culture-specific information used in parsing. Wenn provider ist null oder keinNumberFormatInfo -Objekt abgerufen werden kann, werden 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.

Bei der Konvertierung tritt ein s Fehler auf null , wenn der-Parameter ein numerischer Wert ist oder kein NumberFormatInfo numerischer Wert ist style , der provider -Parameter kein-Objekt ergibt oder der NumberStyles -Parameter keine Kombination von Bitflags aus dem 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.

Wenn Sie der Double.TryParse -Methode eine Zeichenfolge übergeben, die durch den Aufruf der Double.ToString -Methode erstellt wird Double , wird normalerweise der ursprüngliche Wert 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. Aufgrund eines Genauigkeits Verlusts sind die Werte jedoch möglicherweise nicht gleich.However, because of a loss of precision, the values may not be equal. Außerdem wird beim Versuch, die Zeichen folgen Darstellung von entweder MinValue oder MaxValue zu analysieren, OverflowExceptioneine ausgelöst, wie im folgenden 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 im s -Parameter während eines Analyse Vorgangs ein Trennzeichen gefunden wird und die entsprechende Währungs-oder Zahlen Dezimal-und Gruppen Trennzeichen identisch sind, geht der Analyse Vorgang davon aus, dass es sich bei dem Trennzeichen um ein Dezimaltrennzeichen und nicht um eine Gruppe handelt. 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 CurrencyDecimalSeparatorzu Trennzeichen finden Sie unter, NumberDecimalSeparator, CurrencyGroupSeparatorund. NumberGroupSeparatorFor more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Siehe auch

Gilt für: