War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
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

Decimal.TryParse-Methode (String, NumberStyles, IFormatProvider, Decimal)

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
Typ: System.String
Die Zeichenfolgendarstellung der zu konvertierenden Zahl.
style
Typ: System.Globalization.NumberStyles
Eine bitweise Kombination von Enumerationswerten, die das zulässige Format von s angibt. Ein häufig angegebener Wert ist Number.
provider
Typ: System.IFormatProvider
Ein Objekt, das kulturabhängige Analyseinformationen über s bereitstellt.
result
Typ: 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.

Rückgabewert

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

AusnahmeBedingung
ArgumentException

style ist kein NumberStyles-Wert.

- oder -

style ist der AllowHexSpecifier-Wert.

Diese Überladung unterscheidet sich von der Decimal.Parse(String, NumberStyles, IFormatProvider)-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 style-Parameter definiert das zulässige Format des s-Parameters, damit die Analyseoperation erfolgreich ausgeführt werden kann. Hierbei muss es sich um eine Kombination von Bitflags aus der NumberStyles-Enumeration handeln. Die folgenden NumberStyles-Member werden nicht unterstützt:

Je nach dem Wert von style kann der s-Parameter die folgenden Elemente enthalten:

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

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

Element

Beschreibung

LR

Optionaler Leerraum. Leerraum kann am Anfang von s stehen, wenn style das NumberStyles.AllowLeadingWhite-Flag enthält. Leeraum kann am Ende von s angezeigt werden, wenn style das NumberStyles.AllowTrailingWhite-Flag enthält.

$

Ein kulturspezifisches Währungssymbol. Seine Position in der Zeichenfolge wird von der NumberFormatInfo.CurrencyNegativePattern-Eigenschaft oder der NumberFormatInfo.CurrencyPositivePattern-Eigenschaft des NumberFormatInfo-Objekts definiert, das von der IFormatProvider.GetFormat-Methode des provider-Parameters zurückgegeben wird. Das Währungssymbol kann in s angezeigt werden, wenn style das NumberStyles.AllowCurrencySymbol-Flag enthält.

sign

Ein optionales Vorzeichen.

Ziffern

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

.

Ein kulturabhängiges Dezimaltrennzeichen.

Bruchziffern

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

Im style-Parameter können eine oder mehrere NumberStyles-Enumerationskonstanten angegeben werden, die mit einer bitweisen OR-Operation verknüpft werden. Der Parameter gibt das zulässige Format für den s-Parameter an. Wenn style NULL ist, wird s unter Verwendung des NumberStyles.Number-Formats interpretiert.

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 veranschaulicht, wie mithilfe der TryParse(String, NumberStyles, IFormatProvider, Decimal)-Methode die Zeichenfolgendarstellung einer Zahl analysiert wird, die einen bestimmten Stil aufweist und entsprechend den Konventionen einer bestimmten Kultur formatiert ist.


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


.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
Anzeigen:
© 2015 Microsoft