War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Parse-Methode (String, IFormatProvider)
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Decimal.Parse-Methode (String, IFormatProvider)

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
Typ: System.String
Die Zeichenfolgendarstellung der zu konvertierenden Zahl.
provider
Typ: System.IFormatProvider
Ein IFormatProvider, der kulturabhängige Analyseinformationen über s bereitstellt.

Rückgabewert

Typ: System.Decimal
Die Decimal-Zahl, die gemäß den Angaben in provider der in s enthaltenen Zahl entspricht.

AusnahmeBedingung
ArgumentNullException

s ist null.

FormatException

s hat nicht das richtige Format.

OverflowException

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

Diese Überladung der Parse(String, IFormatProvider)-Methode wird normalerweise zum Konvertieren von Text verwendet, der auf unterschiedliche Arten als Decimal-Wert formatiert werden kann. Hiermit kann z. B. der von einem Benutzer eingegebene Text in einem HTML-Textfeld in einen numerischen Wert konvertiert werden.

Der s-Parameter enthält eine Zahl der folgenden Form:

[LR][Vorzeichen][Ziffern,]Ziffern[.Bruchziffern][LR]

Elemente in eckigen Klammern ("["und"]") sind optional. In der folgenden Tabelle werden die einzelnen Elemente beschrieben.

Element

Beschreibung

LR

Optionaler Leerraum.

sign

Ein optionales Vorzeichen.

Ziffern

Eine Folge von Ziffern zwischen 0 (null) und 9.

,

Ein kulturspezifisches Tausendertrennzeichen.

.

Ein kulturabhängiges Dezimaltrennzeichen.

Bruchziffern

Eine Folge von Ziffern zwischen 0 (null) und 9.

Der s-Parameter wird unter Verwendung des NumberStyles.Number-Stils 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 Decimal.Parse(String, NumberStyles, IFormatProvider)-Methode.

Der provider-Parameter ist eine IFormatProvider-Implementierung, z. B. ein NumberFormatInfo-Objekt oder CultureInfo-Objekt. Der provider-Parameter stellt kulturspezifische Informationen für die Analyse bereit. Wenn provider gleich null ist, wird die aktuelle Threadkultur verwendet.

Ein Decimal-Objekt hat eine Genauigkeit von 29 Stellen. Wenn s eine Zahl zwischen MaxValue und MinValue mit mehr als 29 Stellen und einem Teil mit Bruchzahlen darstellt, wird die Zahl nicht abgeschnitten, sondern auf 29 Stellen gerundet, wobei auf den nächsten Wert gerundet wird.

Wenn während eines Analysevorgangs im s-Parameter ein Trennzeichen gefunden wird und die Dezimal- und Gruppentrennzeichen für Währungs- und Zahlenangaben identisch sind, dann wertet der Analysevorgang das Trennzeichen als Dezimaltrennzeichen und nicht als Gruppentrennzeichen. Weitere Informationen über Trennzeichen finden Sie unter CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator und NumberGroupSeparator.

Im folgenden Beispiel wird der Ereignishandler für das Click-Ereignis eines Web Forms veranschaulicht. Es wird das von der HttpRequest.UserLanguages-Eigenschaft zurückgegebene Array verwendet, um das Gebietsschema des Benutzers zu bestimmen. Danach wird ein CultureInfo-Objekt instanziiert, das diesem Gebietsschema entspricht. Das zu diesem CultureInfo-Objekt gehörende NumberFormatInfo-Objekt wird dann an die Parse(String, IFormatProvider)-Methode übergeben, um die Benutzereingabe in einen Decimal-Wert zu konvertieren.


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();
}


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.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