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

 

Veröffentlicht: Oktober 2016

Konvertiert die Zeichenfolgendarstellung einer Zahl unter Verwendung des angegebenen Stils und kulturspezifischer Formatierungsinformationen in die Decimal-Entsprechung. 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,
	NumberStyles style,
	IFormatProvider provider,
	out decimal result
)

Parameter

s
Type: System.String

Die Zeichenfolgendarstellung der zu konvertierenden Zahl.

style
Type: System.Globalization.NumberStyles

Eine bitweise Kombination von Enumerationswerten, die das zulässige Format von s angibt. Ein häufig angegebener Wert ist Number.

provider
Type: System.IFormatProvider

Ein Objekt, das kulturabhängige Analyseinformationen über s bereitstellt.

result
Type: System.Decimal

Enthält bei Rückgabe dieser Methode die Decimal-Zahl, die dem numerischen Wert in s entspricht, wenn die Konvertierung erfolgreich ausgeführt wurde, oder 0 (null) bei einem Konvertierungsfehler. Bei der Konvertierung tritt ein Fehler auf, wenn der s-Parameter null oder String.Empty ist, nicht in einem mit style kompatiblen Format vorliegt oder eine Zahl kleiner als MinValue oder größer als MaxValue darstellt. Dieser Parameter wird nicht initialisiert übergeben. Jeder Wert, der ursprünglich im bereitgestellten result überschrieben werden.

Rückgabewert

Type: System.Boolean

true, wenn s erfolgreich konvertiert wurde, andernfalls false.

Exception Condition
ArgumentException

style ist kein NumberStyles-Wert.

- oder -

style ist der AllowHexSpecifier-Wert.

Diese Überladung unterscheidet sich von der Decimal.Parse(String, NumberStyles, IFormatProvider) 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 style Parameter definiert das zulässige Format von 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:

Abhängig vom Wert der Formatvorlage die s -Parameter enthält möglicherweise die folgenden Elemente:

[ws] [$] [anmelden] [Ziffern] Ziffern [.fractional-Ziffern] [-e [Anmeldung] Ziffern] [ws]

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

Element

Beschreibung

ws

Optionaler Leerraum. Leerzeichen am Anfang stehen s Wenn style enthält die NumberStyles.AllowLeadingWhite Flag. Es stehen am Ende der s Wenn style enthält die NumberStyles.AllowTrailingWhite Flag.

$

Eine kulturspezifische Währungssymbol. Seine Position in der Zeichenfolge wird durch definiert die NumberFormatInfo.CurrencyNegativePattern oder NumberFormatInfo.CurrencyPositivePattern Eigenschaften der NumberFormatInfo zurückgegebenes Objekt die IFormatProvider.GetFormat Methode der provider Parameter. Das Währungssymbol stehen s Wenn style enthält die NumberStyles.AllowCurrencySymbol Flag.

Vorzeichen

Einem optionalen Vorzeichen.

Ziffern

Eine Folge von Ziffern zwischen 0 und 9.

.

Eine kulturspezifische Dezimaltrennzeichen.

Dezimalstellen sind

Eine Folge von Ziffern zwischen 0 und 9.

Die style Parameter gibt das zulässige Format von der s -Parameter und kann einen oder mehrere NumberStyles -Enumerationskonstanten mithilfe einer bitweisen OR-Operation kombiniert. Wenn style ist null, s wird die NumberStyles.Number Stil.

Die provider Parameter ist ein IFormatProvider Implementierung wie 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.

Das folgende Beispiel veranschaulicht die Verwendung von der TryParse(String, NumberStyles, IFormatProvider, Decimal) Methode, um die Zeichenfolgendarstellung einer Zahl zu analysieren, die einen bestimmten nachrichtenstil und mit den Konventionen einer bestimmten Kultur formatiert wird.

string value;
NumberStyles style;
CultureInfo culture;
decimal number;

// Parse currency value using en-GB culture.
value = "£1,097.63";
style = NumberStyles.Number | NumberStyles.AllowCurrencySymbol;
culture = CultureInfo.CreateSpecificCulture("en-GB");
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays: 
//       Converted '£1,097.63' to 1097.63.

value = "1345,978";
style = NumberStyles.AllowDecimalPoint;
culture = CultureInfo.CreateSpecificCulture("fr-FR");
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       Converted '1345,978' to 1345.978.

value = "1.345,978";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands;
culture = CultureInfo.CreateSpecificCulture("es-ES");
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays: 
//       Converted '1.345,978' to 1345.978.

value = "1 345,978";
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       Unable to convert '1 345,978'.

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: