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

Decimal.Parse-Methode: (String, IFormatProvider)

 

Veröffentlicht: Oktober 2016

Konvertiert die Zeichenfolgendarstellung einer Zahl unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen in die Decimal-Entsprechung.

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

public static decimal Parse(
	string s,
	IFormatProvider provider
)

Parameter

s
Type: System.String

Die Zeichenfolgendarstellung der zu konvertierenden Zahl.

provider
Type: System.IFormatProvider

Ein IFormatProvider, der kulturabhängige Analyseinformationen über s bereitstellt.

Rückgabewert

Type: System.Decimal

Die Decimal-Zahl, die der in s enthaltenen Zahl entspricht, wie durch provider angegeben.

Exception Condition
ArgumentNullException

s ist null.

FormatException

s weist nicht das richtige Format auf.

OverflowException

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

Diese Überladung der der Parse(String, IFormatProvider) Methode wird häufig verwendet, um Text zu konvertieren, die in einer Vielzahl von Möglichkeiten, formatiert werden, kann ein Decimal Wert. Beispielsweise kann verwendet werden, konvertieren Sie den Text in einem Textfeld HTML in einen numerischen Wert von einem Benutzer eingegeben.

Die s Parameter enthält eine Reihe von der Form:

[ws] [anmelden] [Ziffern] Ziffern [.fractional-Ziffern] [ws]

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

Element

Beschreibung

ws

Optionaler Leerraum.

Vorzeichen

Einem optionalen Vorzeichen.

Ziffern

Eine Folge von Ziffern zwischen 0 und 9.

,

Eine kulturspezifische Tausende Trennzeichen.

.

Eine kulturspezifische Dezimaltrennzeichen.

Dezimalstellen sind

Eine Folge von Ziffern zwischen 0 und 9.

Die s Parameter wird interpretiert, mit der NumberStyles.Number Stil. 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 Decimal.Parse(String, NumberStyles, IFormatProvider) Methode.

Die provider Parameter ist ein IFormatProvider Implementierung, z. B. eine NumberFormatInfo oder CultureInfo Objekt. Die provider Parameter liefert kulturspezifische Informationen, die bei der Analyse verwendet. Wenn provider gleich null ist, wird die aktuelle Threadkultur verwendet.

Ein Decimal Objekt hat die Genauigkeit von 29 Stellen. Wenn s eine Zahl ein, die mehr als 29 Stellen jedoch einen Teil mit Bruchzahlen und ist innerhalb des Bereichs von MaxValue und MinValue, die Zahl gerundet wird, nicht auf 29 Ziffern, die in den nächsten gekürzt.

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 folgende Beispiel wird die Schaltfläche mit der click-Ereignishandler, der ein Web Form. Er verwendet das zurückgegebene Array die HttpRequest.UserLanguages Eigenschaft um Gebietsschema des Benutzers zu bestimmen. Klicken Sie dann instanziiert einen CultureInfo -Objekt, das diesem Gebietsschema entspricht. Die NumberFormatInfo -Objekt, das zu gehört CultureInfo Objekt wird dann zum Übergeben der Parse(String, IFormatProvider) Methode, um den Benutzer Konvertieren der Eingabe für eine Decimal Wert.

protected void OkToDecimal_Click(object sender, EventArgs e)
{
   string locale;
   decimal number;
   CultureInfo culture;

   // Return if string is empty
   if (String.IsNullOrEmpty(this.inputNumber.Text))
      return;

   // Get locale of web request to determine possible format of number
   if (Request.UserLanguages.Length == 0)
      return;
   locale = Request.UserLanguages[0];
   if (String.IsNullOrEmpty(locale))
      return;

  // Instantiate CultureInfo object for the user's locale
   culture = new CultureInfo(locale);

   // Convert user input from a string to a number
   try
   {
      number = Decimal.Parse(this.inputNumber.Text, culture.NumberFormat);
   }
   catch (FormatException)
   {
      return;
   }
   catch (Exception)
   {
      return;
   }
   // Output number to label on web form
   this.outputNumber.Text = "Number is " + number.ToString();
}

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: