Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Double.TryParse-Methode (String, Double)

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
Typ: System.String
Eine Zeichenfolge, die die zu konvertierende Zahl enthält.
result
Typ: System.Double
Diese 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 nicht durchgeführt werden konnte. 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 darstellt. Dieser Parameter wird nicht initialisiert übergeben.

Rückgabewert

Typ: System.Boolean
true , wenn s erfolgreich konvertiert wurde, andernfalls false.

Diese Überladung unterscheidet sich von der Double.Parse(String)-Methode, da sie nicht den analysierten numerischen Wert, sondern einen booleschen Wert zurückgibt, der angibt, ob der Analysevorgang erfolgreich abgeschlossen wurde. Hiermit muss keine Ausnahmebehandlung ausgeführt werden, um einen Test auf eine FormatException auszuführen, für den Fall, dass s ungültig ist und nicht erfolgreich analysiert werden kann.

Der s-Parameter kann das NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol oder NumberFormatInfo.NaNSymbol der aktuellen Kultur (beim Zeichenfolgenvergleich wird die Groß- und Kleinschreibung berücksichtigt) oder eine Zeichenfolge im folgenden Format enthalten:

[LR][Vorzeichen][Ganzzahl-Ziffern,]Ganzzahl-Ziffern[.[Bruchziffern]][e[Vorzeichen]Exponenten-Ziffern][LR]

Elemente in eckigen Klammern sind optional. In der folgenden Tabelle werden die einzelnen Elemente beschrieben.

Element

Beschreibung

LR

Eine Folge von Leerraumzeichen.

sign

Ein Minuszeichen oder ein Pluszeichen.

Ganzzahl-Ziffern

Eine Reihe von numerischen Zeichen von 0 (null) bis 9, die den ganzzahligen Teil der Zahl angeben. Ganzzahl-Ziffern dürfen fehlen, wenn Bruch-Ziffern vorhanden sind.

,

Ein kulturspezifisches Gruppentrennzeichen.

.

Ein kulturabhängiges Dezimaltrennzeichen.

Bruchziffern

Eine Reihe von numerischen Zeichen von 0 (null) bis 9, die den Bruchteil der Zahl angeben.

E

Ein großes oder kleines 'e', das Exponentialschreibweise (wissenschaftliche Schreibweise) anzeigt.

Exponenten-Ziffern

Eine Reihe von numerischen Zeichen von 0 (null) bis 9, die einen Exponenten angeben.

Weitere Informationen zu numerischen Formate finden Sie unter Formatierung von Typen.

Der s-Parameter wird von einer Kombination aus dem NumberStyles.Float-Flag und dem NumberStyles.AllowThousands-Flag interpretiert. Dies bedeutet, dass Leerraum und Tausendertrennzeichen zulässig, Währungssymbole hingegen unzulässig sind. Wenn Sie die Elemente (wie Währungssymbole, Tausendertrennzeichen und Leerraum), die in s vorhanden sein können, explizit definieren möchten, verwenden Sie die Double.TryParse(String, NumberStyles, IFormatProvider, Double)-Methodenüberladung.

Der s-Parameter wird mithilfe der Formatierungsinformationen in einem NumberFormatInfo-Objekt analysiert, das für die aktuelle Systemkultur initialisiert wird. Weitere Informationen finden Sie unter NumberFormatInfo.CurrentInfo. Verwenden Sie die Double.TryParse(String, NumberStyles, IFormatProvider, Double)-Methodenüberladung, um eine Zeichenfolge mit den Formatierungsinformationen einer bestimmten anderen Kultur zu analysieren.

Wenn Sie der Double.TryParse-Methode eine Zeichenfolge übergeben, die durch den Aufruf der Double.ToString-Methode erstellt wird, wird normalerweise der ursprüngliche Double-Wert zurückgegeben. Wegen eines Genauigkeitsverlusts sind die Werte jedoch möglicherweise nicht gleich. Wenn Sie versuchen, die Zeichenfolgendarstellung von MinValue oder MaxValue zu analysieren, wird darüber hinaus eine OverflowException ausgelöst, wie das folgende Beispiel veranschaulicht.


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 während eines Analysevorgangs im s-Parameter ein Trennzeichen gefunden wird und die Dezimal- und Gruppentrennzeichen identisch sind, wird das Trennzeichen vom Analysevorgang als Dezimaltrennzeichen und nicht als Gruppentrennzeichen ausgewertet. Weitere Informationen über Trennzeichen finden Sie unter CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator und NumberGroupSeparator.

Im folgenden Beispiel wird die TryParse(String, Double)-Methode verwendet, um die Zeichenfolgendarstellungen von numerischen Werten in Double-Werte zu konvertieren. Dabei wird davon ausgegangen, dass als aktuelle Kultur en-US festgelegt ist.


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


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2015 Microsoft