Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Double.TryParse-Methode: (String, Double)

 

Veröffentlicht: Oktober 2016

Konvertiert die Zeichenfolgendarstellung einer Zahl in die entsprechende Gleitkommazahl mit doppelter Genauigkeit. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public static bool TryParse(
	string s,
	out double result
)

Parameter

s
Type: System.String

Eine Zeichenfolge, die die zu konvertierende Zahl enthält.

result
Type: System.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. Bei der Konvertierung tritt ein Fehler auf, wenn der s-Parameter null oder String.Empty ist, keine Zahl in einem gültigen Format ist oder eine Zahl kleiner als MinValue oder größer als MaxValue ist. Dieser Parameter wird nicht initialisiert übergeben; in result ursprünglich übergebene Werte werden ausnahmslos überschrieben.

Rückgabewert

Type: System.Boolean

true, wenn s erfolgreich konvertiert wurde, andernfalls false.

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. Es entfällt die Notwendigkeit, mit der Behandlung von Ausnahmen für Testen einer FormatException , s ist ungültig und kann nicht erfolgreich analysiert werden kann.

Die s Parameter kann der aktuellen Kultur enthalten NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, NumberFormatInfo.NaNSymbol (Zeichenfolgenvergleich wird die Groß-/Kleinschreibung beachtet) oder eine Zeichenfolge der Form:

[ws] [anmelden] [ganzzahligen Ziffern,] ganzzahligen Ziffern [. [ Bruchstellen]] [-e [Anmeldung] exponentiellen-Ziffern] [ws]

Elemente in eckigen Klammern sind optional. In der folgenden Tabelle wird jedes Element beschrieben.

Element

Beschreibung

ws

Eine Reihe von Leerzeichen.

Vorzeichen

Ein negatives Vorzeichen oder Pluszeichen.

ganzzahlige Ziffern

Eine Reihe von numerischen Zeichen, die im Bereich von 0 bis 9, die den ganzzahligen Teil der Zahl angeben. Ganzzahlige Ziffern nicht vorhanden sein können, wenn Sekundenbruchteile Ziffern vorhanden sind.

,

Eine kulturspezifische Gruppentrennzeichen.

.

Eine kulturspezifische Dezimaltrennzeichen.

Dezimalstellen sind

Eine Reihe von numerischen Zeichen, die im Bereich von 0 bis 9, die die Nachkommastellen der Zahl angeben.

E

Ein klein-oder Großbuchstaben und Zeichen "e", der Exponentialschreibweise (wissenschaftlich) angibt.

exponentielle Ziffern

Eine Reihe von numerischen Zeichen, die im Bereich von 0 bis 9, die einen Exponenten angeben.

Weitere Informationen zu numerischen Formate finden Sie unter Formatieren von Typen in .NET Framework.

Die s Parameter wird durch eine Kombination von interpretiert die NumberStyles.Float und NumberStyles.AllowThousands Flags. Dies bedeutet, dass Leerraum und Tausenden Trennzeichen zulässig sind jedoch Währungssymbole nicht. Um die Elemente explizit definieren (z. B. Währungssymbole, Tausendertrennzeichen Trennzeichen und Leerzeichen) in vorhanden sein können s, verwenden die Double.TryParse(String, NumberStyles, IFormatProvider, Double) methodenüberladung.

Die s Parameter analysiert wird, unter Verwendung der Formatierungsinformationen in eine NumberFormatInfo -Objekt, das für die aktuelle Systemkultur initialisiert wird. Weitere Informationen finden Sie unter NumberFormatInfo.CurrentInfo. Analysieren eine Zeichenfolge unter Verwendung der Formatierungsinformationen einer anderen Kultur angegeben, verwenden Sie die Double.TryParse(String, NumberStyles, IFormatProvider, Double) -methodenüberladung.

Normalerweise, wenn Sie übergeben die Double.TryParse Methode eine Zeichenfolge, die durch den Aufruf erstellt wird die Double.ToString -Methode, die ursprünglichen Double zurückgegebene Wert. Jedoch möglicherweise wegen einem Genauigkeitsverlust die Werte sein nicht gleich. Darüber hinaus versucht, die Zeichenfolgendarstellung eines analysieren MinValue oder MaxValue löst ein OverflowException, wie das folgende Beispiel veranschaulicht.

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.            

Wenn es eine Trennzeichen in kommt die s Parameter bei einem Analysevorgang und der Dezimal- und Gruppentrennzeichen identisch sind, der Analysevorgang wird davon ausgegangen, dass das Trennzeichen ein Dezimaltrennzeichen und Gruppentrennzeichen ist. Weitere Informationen über Trennzeichen finden Sie unter CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, und NumberGroupSeparator.

Im folgenden Beispiel wird die TryParse(String, Double) Methode, um die zeichenfolgenentsprechungen von numerischen Werten zu konvertieren Double Werte. Es wird davon ausgegangen, dass die aktuelle Kultur "En-US".

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'.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 2.0
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: