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.Parse-Methode: (String, NumberStyles)

 

Veröffentlicht: Oktober 2016

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Format in die entsprechende Gleitkommazahl mit doppelter Genauigkeit.

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

public static double Parse(
	string s,
	NumberStyles style
)

Parameter

s
Type: System.String

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

style
Type: System.Globalization.NumberStyles

Eine bitweise Kombination von Enumerationswerten, die die Stilelemente angeben, die in s vorhanden sein können. Ein häufig anzugebender Wert ist eine Kombination von Float und AllowThousands.

Rückgabewert

Type: System.Double

Eine Gleitkommazahl mit doppelter Genauigkeit, die dem numerischen Wert oder Symbol in s entspricht.

Exception Condition
ArgumentNullException

s ist null.

FormatException

s stellt keine Zahl in einem gültigen Format dar.

OverflowException

s stellt eine Zahl dar, die kleiner als MinValue oder größer als MaxValue ist.

ArgumentException

style ist kein NumberStyles-Wert.

- oder -

style enthält den AllowHexSpecifier-Wert.

Die style Parameter definiert, die die Stilelemente (z. B. Leerzeichen, Tausende Trennzeichen und Währungssymbole), sind zulässig, der s Parameter, damit der Analysevorgang erfolgreich ausgeführt werden kann. Es muss eine Kombination von Bitflags aus der NumberStyles Enumeration. Die folgenden NumberStyles Elemente werden nicht unterstützt:

Die s Parameter kann der aktuellen Kultur enthalten NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, oder NumberFormatInfo.NaNSymbol. Abhängig vom Wert style, dauert auch die Form:

[ws][$][sign][integral-digits[,]]integral-digits[. [Dezimalstellen]] [-e [Anmeldung]exponentiellen Ziffern] [ws]

Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle wird jedes Element beschrieben.

Element

Beschreibung

ws

Eine Reihe von Leerzeichen. Leerzeichen am Anfang stehen s Wenn style enthält die NumberStyles.AllowLeadingWhite Flag kann angezeigt werden, am Ende der s Wenn style enthält die NumberStyles.AllowTrailingWhite Flag.

$

Eine kulturspezifische Währungssymbol. Seine Position in der Zeichenfolge wird definiert, durch die NumberFormatInfo.CurrencyNegativePattern und NumberFormatInfo.CurrencyPositivePattern Eigenschaften der aktuellen Kultur. Das Währungssymbol der aktuellen Kultur stehen s Wenn style enthält die NumberStyles.AllowCurrencySymbol Flag.

Vorzeichen

Ein Minuszeichen (-) oder ein Pluszeichen (+). Die Zeichen am Anfang stehen s Wenn style enthält die NumberStyles.AllowLeadingSign Flag kann angezeigt werden, am Ende der s Wenn style enthält die NumberStyles.AllowTrailingSign Flag. Klammern können verwendet werden, s zum Angeben eines negativen Werts Wenn style enthält die NumberStyles.AllowParentheses Flag.

ganzzahlige Ziffern

Eine Folge von Ziffern zwischen 0 und 9, die den ganzzahligen Teil der Zahl angeben. Die ganzzahligen Ziffern Element kann nicht vorhanden, wenn die Zeichenfolge enthält den Dezimalstellen Element.

,

Eine kulturspezifische Gruppentrennzeichen. In der aktuellen Kultur Gruppentrennzeichen angezeigt werden kann s Wenn style enthält die NumberStyles.AllowThousands Flag

.

Eine kulturspezifische Dezimaltrennzeichen. In der aktuellen Kultur Dezimaltrennzeichen angezeigt werden kann s Wenn style enthält die NumberStyles.AllowDecimalPoint Flag.

Dezimalstellen sind

Eine Folge von Ziffern zwischen 0 und 9, die die Nachkommastellen der Zahl angeben. Dezimalstellen erscheinen s Wenn style enthält die NumberStyles.AllowDecimalPoint Flag.

E

Das "e" oder die Zeichen "E", der angibt, dass der Wert in Exponentialschreibweise (wissenschaftlich) dargestellt wird. Die s Parameter kann eine Zahl in Exponentialschreibweise darstellen, wenn style enthält die NumberStyles.AllowExponent Flag.

exponentielle Ziffern

Eine Folge von Ziffern zwischen 0 bis 9, die einen Exponenten angeben.

Eine Zeichenfolge mit nur-Ziffern (entspricht der NumberStyles.None Stil) immer erfolgreich analysiert. Die verbleibenden System.Globalization.NumberStyles Member steuern Elemente, die möglicherweise vorhanden, jedoch sind nicht erforderlich, in der Eingabezeichenfolge vorhanden sein. In der folgenden Tabelle gibt an, wie einzelne NumberStyles Flags Auswirkungen auf die Elemente, die möglicherweise in vorhandene s.

NumberStyles-Wert

Elemente in zulässig s neben Ziffern

None

Die ganzzahligen Ziffern nur Element.

AllowDecimalPoint

Das Dezimaltrennzeichen (.) und Dezimalstellen Elemente.

AllowExponent

Das "e" oder "E"-Zeichen, das Exponentialschreibweise angibt. Dieses Flag allein unterstützt Werte im Formular ZiffernEZiffern; zusätzliche Flags sind erforderlich, um Zeichenfolgen mit Elementen wie positiven und negativen Vorzeichen und Dezimaltrennzeichen erfolgreich analysiert.

AllowLeadingWhite

Die ws Element am Anfang des s.

AllowTrailingWhite

Die ws Element am Ende der s.

AllowLeadingSign

Die Anmeldung Element am Anfang des s.

AllowTrailingSign

Die Anmeldung Element am Ende der s.

AllowParentheses

Die Anmeldung Element in Form von Klammern, die den numerischen Wert einschließen.

AllowThousands

Das 1000er-Trennzeichen-Element.

AllowCurrencySymbol

Das Element, Currency ($).

Currency

Alle Elemente. Allerdings s keine hexadezimale Zahl oder einer Zahl in Exponentialschreibweise darstellen.

Float

Die ws Element am Anfang oder Ende des s, Anmeldung am Anfang des s, und das Dezimaltrennzeichen (.) Symbol. Die s Parameter können auch Exponentialschreibweise.

Number

Die ws, sign, Tausender-Trennzeichen und Dezimaltrennzeichen (.) Elemente.

Any

Alle Elemente. Allerdings s eine hexadezimale Zahl nicht darstellen kann.

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

Normalerweise, wenn Sie übergeben die Double.Parse 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.

   string value;

   value = Double.MinValue.ToString();
   try {
      Console.WriteLine(Double.Parse(value));
   }   
   catch (OverflowException) {
      Console.WriteLine("{0} is outside the range of the Double type.",
                        value);
   }

   value = Double.MaxValue.ToString();
   try {
      Console.WriteLine(Double.Parse(value));
   }
   catch (OverflowException) {
      Console.WriteLine("{0} is outside the range of the Double type.",
                        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, während ein Analysevorgang und der geltenden Währung oder die Anzahl von Dezimalstellen und Gruppentrennzeichen stimmen überein, 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 Parse(String, NumberStyles) Methode analysiert die zeichenfolgendarstellungen Double Werte mithilfe der Kultur En-US.

public static void Main()
{
   // Set current thread culture to en-US.
   Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");

   string value;
   NumberStyles styles;

   // Parse a string in exponential notation with only the AllowExponent flag. 
   value = "-1.063E-02";
   styles = NumberStyles.AllowExponent;
   ShowNumericValue(value, styles);

   // Parse a string in exponential notation
   // with the AllowExponent and Number flags.
   styles = NumberStyles.AllowExponent | NumberStyles.Number;
   ShowNumericValue(value, styles);

   // Parse a currency value with leading and trailing white space, and
   // white space after the U.S. currency symbol.
   value = " $ 6,164.3299  ";
   styles = NumberStyles.Number | NumberStyles.AllowCurrencySymbol;
   ShowNumericValue(value, styles);

   // Parse negative value with thousands separator and decimal.
   value = "(4,320.64)";
   styles = NumberStyles.AllowParentheses | NumberStyles.AllowTrailingSign |
            NumberStyles.Float; 
   ShowNumericValue(value, styles);

   styles = NumberStyles.AllowParentheses | NumberStyles.AllowTrailingSign |
            NumberStyles.Float | NumberStyles.AllowThousands;
   ShowNumericValue(value, styles);
}

private static void ShowNumericValue(string value, NumberStyles styles)
{
   double number;
   try
   {
      number = Double.Parse(value, styles);
      Console.WriteLine("Converted '{0}' using {1} to {2}.", 
                        value, styles.ToString(), number);
   }
   catch (FormatException)
   {
      Console.WriteLine("Unable to parse '{0}' with styles {1}.", 
                        value, styles.ToString());
   }
   Console.WriteLine();                           
}   
// The example displays the following output to the console:
//    Unable to parse '-1.063E-02' with styles AllowExponent.
//    
//    Converted '-1.063E-02' using AllowTrailingSign, AllowThousands, Float to -0.01063.
//    
//    Converted ' $ 6,164.3299  ' using Number, AllowCurrencySymbol to 6164.3299.
//    
//    Unable to parse '(4,320.64)' with styles AllowTrailingSign, AllowParentheses, Float.
//    
//    Converted '(4,320.64)' using AllowTrailingSign, AllowParentheses, AllowThousands, Float to -4320.64.   

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
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: