Decimal.TryParse Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wandelt die angegebene Zeichenfolgendarstellung einer Zahl in ihre Decimal-Entsprechung um. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.
Überlädt
TryParse(ReadOnlySpan<Byte>, Decimal) |
Versucht, eine UTF-8-Zeichenspanne, die die Zeichenfolgendarstellung einer Zahl enthält, in die dezimale Entsprechung mit Vorzeichen zu konvertieren. |
TryParse(ReadOnlySpan<Char>, Decimal) |
Konvertiert die Spannendarstellung 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. |
TryParse(String, Decimal) |
Wandelt die angegebene Zeichenfolgendarstellung einer Zahl in ihre Decimal-Entsprechung um. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal) |
Versucht, eine Spanne von UTF-8-Zeichen in einen Wert zu analysieren. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal) |
Versucht, eine Spanne von Zeichen in einen Wert zu analysieren. |
TryParse(String, IFormatProvider, Decimal) |
Versucht, eine Zeichenfolge in einen Wert zu analysieren. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Decimal) |
Versucht, eine Spanne von UTF-8-Zeichen in einen Wert zu analysieren. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal) |
Konvertiert die Spannendarstellung 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. |
TryParse(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. |
TryParse(ReadOnlySpan<Byte>, Decimal)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Versucht, eine UTF-8-Zeichenspanne, die die Zeichenfolgendarstellung einer Zahl enthält, in die dezimale Entsprechung mit Vorzeichen zu konvertieren.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out decimal result);
static member TryParse : ReadOnlySpan<byte> * decimal -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As Decimal) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Eine Spanne, die die UTF-8-Zeichen enthält, die die zu konvertierende Zahl darstellen.
- result
- Decimal
Wenn diese Methode zurückgibt, enthält den vorzeichenden Dezimalwert, der der Zahl entspricht, die in utf8Text
enthalten ist, wenn die Konvertierung erfolgreich war, oder null, wenn die Konvertierung fehlgeschlagen ist. Dieser Parameter wird nicht initialisiert übergeben. Im Ergebnis ursprünglich übergebene Werte werden ausnahmslos überschrieben.
Gibt zurück
true
, wenn utf8Text
erfolgreich konvertiert wurde, andernfalls false
.
Gilt für:
TryParse(ReadOnlySpan<Char>, Decimal)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Konvertiert die Spannendarstellung 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.
public:
static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse (ReadOnlySpan<char> s, out decimal result);
static member TryParse : ReadOnlySpan<char> * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Decimal) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Die Spanne mit den Zeichen, die die zu konvertierende Zahl darstellen.
- result
- 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. Die Konvertierung schlägt fehl, wenn der s
Parameter null
oder Emptyist, keine Zahl in einem Format ist, das mit style
kompatibel ist, oder eine Zahl darstellt, die kleiner als Decimal.MinValue oder größer als Decimal.MaxValue ist. Dieser Parameter wird nicht initialisiert übergeben; in result
ursprünglich übergebene Werte werden ausnahmslos überschrieben.
Gibt zurück
true
, wenn s
erfolgreich konvertiert wurde, andernfalls false
.
Gilt für:
TryParse(String, Decimal)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Wandelt die angegebene Zeichenfolgendarstellung einer Zahl in ihre Decimal-Entsprechung um. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.
public:
static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse (string s, out decimal result);
public static bool TryParse (string? s, out decimal result);
static member TryParse : string * decimal -> bool
Public Shared Function TryParse (s As String, ByRef result As Decimal) As Boolean
Parameter
- s
- String
Die Zeichenfolgendarstellung der zu konvertierenden Zahl.
- result
- 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. Die Konvertierung schlägt fehl, wenn der s
Parameter null
oder Emptyist, keine Zahl in einem gültigen Format ist oder eine Zahl kleiner als Decimal.MinValue oder größer als Decimal.MaxValue darstellt. Dieser Parameter wird nicht initialisiert übergeben; in result
ursprünglich übergebene Werte werden ausnahmslos überschrieben.
Gibt zurück
true
, wenn s
erfolgreich konvertiert wurde, andernfalls false
.
Beispiele
Im folgenden Beispiel wird die Decimal.TryParse(String, Decimal) -Methode verwendet, um die Zeichenfolgendarstellungen numerischer Werte in Werte zu Decimal konvertieren. Es wird davon ausgegangen, dass en-US die aktuelle Kultur ist.
string value;
decimal number;
// Parse a floating-point value with a thousands separator.
value = "1,643.57";
if (Decimal.TryParse(value, out number))
Console.WriteLine(number);
else
Console.WriteLine("Unable to parse '{0}'.", value);
// Parse a floating-point value with a currency symbol and a
// thousands separator.
value = "$1,643.57";
if (Decimal.TryParse(value, out number))
Console.WriteLine(number);
else
Console.WriteLine("Unable to parse '{0}'.", value);
// Parse value in exponential notation.
value = "-1.643e6";
if (Decimal.TryParse(value, out number))
Console.WriteLine(number);
else
Console.WriteLine("Unable to parse '{0}'.", value);
// Parse a negative integer value.
value = "-1689346178821";
if (Decimal.TryParse(value, out number))
Console.WriteLine(number);
else
Console.WriteLine("Unable to parse '{0}'.", value);
// The example displays the following output to the console:
// 1643.57
// Unable to parse '$1,643.57'.
// Unable to parse '-1.643e6'.
// -1689346178821
// Parse a floating-point value with a thousands separator.
let value = "1,643.57"
match Decimal.TryParse value with
| true, number ->
printfn $"{number}"
| _ ->
printfn $"Unable to parse '{value}'."
// Parse a floating-point value with a currency symbol and a
// thousands separator.
let value = "$1,643.57"
match Decimal.TryParse value with
| true, number ->
printfn $"{number}"
| _ ->
printfn $"Unable to parse '{value}'."
// Parse value in exponential notation.
let value = "-1.643e6"
match Decimal.TryParse value with
| true, number ->
printfn $"{number}"
| _ ->
printfn $"Unable to parse '{value}'."
// Parse a negative integer value.
let value = "-1689346178821"
match Decimal.TryParse value with
| true, number ->
printfn $"{number}"
| _ ->
printfn $"Unable to parse '{value}'."
// The example displays the following output to the console:
// 1643.57
// Unable to parse '$1,643.57'.
// Unable to parse '-1.643e6'.
// -1689346178821
Dim value As String
Dim number As Decimal
' Parse a floating-point value with a thousands separator.
value = "1,643.57"
If Decimal.TryParse(value, number) Then
Console.WriteLine(number)
Else
Console.WriteLine("Unable to parse '{0}'.", value)
End If
' Parse a floating-point value with a currency symbol and a
' thousands separator.
value = "$1,643.57"
If Decimal.TryParse(value, number) Then
Console.WriteLine(number)
Else
Console.WriteLine("Unable to parse '{0}'.", value)
End If
' Parse value in exponential notation.
value = "-1.643e6"
If Decimal.TryParse(value, number)
Console.WriteLine(number)
Else
Console.WriteLine("Unable to parse '{0}'.", value)
End If
' Parse a negative integer value.
value = "-1689346178821"
If Decimal.TryParse(value, number)
Console.WriteLine(number)
Else
Console.WriteLine("Unable to parse '{0}'.", value)
End If
' The example displays the following output to the console:
' 1643.57
' Unable to parse '$1,643.57'.
' Unable to parse '-1.643e6'.
' -1689346178821
Hinweise
Diese Überladung unterscheidet sich von der Decimal.Parse(String) -Methode, indem sie einen booleschen Wert zurückgibt, der angibt, ob der Analysevorgang erfolgreich war, anstatt den analysierten numerischen Wert zurückzugeben. Es entfällt die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um im Fall eines FormatException zu testen, das s
ungültig ist und nicht erfolgreich analysiert werden kann.
Parameter s
enthält eine Nummer des Formulars:
[ws] [sign] [Digits,]digits[.fractional-digits][ws]
Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle wird jedes Element beschrieben.
Element | Beschreibung |
---|---|
ws | Optionaler Leerraum. |
sign | Ein optionales Zeichen. |
Zahlen | Eine Sequenz von Ziffern im Bereich von 0 bis 9. |
, | Ein kulturspezifisches Tausendertrennzeichen. |
. | Ein kulturspezifisches Dezimaltrennzeichen. |
Bruchstellen | Eine Sequenz von Ziffern im Bereich von 0 bis 9. |
Der Parameter s
wird mithilfe des Stils NumberStyles.Number interpretiert. Dies bedeutet, dass Leerzeichen und Tausendertrennzeichen zulässig sind, Währungssymbole jedoch nicht. Verwenden Sie die -Methodenüberladung, um explizit die Elemente (z. B. Währungssymbole, Tausendertrennzeichen und Leerzeichen) zu definieren, die Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) in s
vorhanden sein können.
Der Parameter s
wird mithilfe der Formatierungsinformationen in einem NumberFormatInfo Objekt analysiert, das für die aktuelle Systemkultur initialisiert wurde. Weitere Informationen finden Sie unter CurrentInfo. Um eine Zeichenfolge mithilfe der Formatierungsinformationen einer anderen angegebenen Kultur zu analysieren, verwenden Sie die Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) Methodenüberladung.
Bei Bedarf wird der Wert von s
durch Rundung auf den nächsten gerundet.
Ein Decimal -Objekt hat eine Genauigkeit von 29 Ziffern. Wenn s
eine Zahl darstellt, die mehr als 29 Ziffern hat, aber einen Teilbruch aufweist und innerhalb des Bereichs von MaxValue und MinValueliegt, wird die Zahl durch Rundung auf 29 Ziffern gerundet, nicht abgeschnitten.
Wenn während eines Analysevorgangs ein Trennzeichen im s
Parameter gefunden wird und die entsprechenden Währungs- oder Zahlendezimal- und Gruppentrennzeichen identisch sind, wird beim Analysevorgang davon ausgegangen, dass das Trennzeichen ein Dezimaltrennzeichen und kein Gruppentrennzeichen ist. Weitere Informationen zu Trennzeichen finden Sie unter CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatorund NumberGroupSeparator.
Weitere Informationen
Gilt für:
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Versucht, eine Spanne von UTF-8-Zeichen in einen Wert zu analysieren.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = IUtf8SpanParsable<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out decimal result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * decimal -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As Decimal) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Die Spanne der zu analysierenden UTF-8-Zeichen.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu utf8Text
bereitstellt.
- result
- Decimal
Enthält bei rückgabe das Ergebnis der erfolgreichen Analyse oder einen nicht definierten utf8Text
Wert bei Einem Fehler.
Gibt zurück
true
, wenn utf8Text
erfolgreich analysiert wurde, false
andernfalls .
Gilt für:
TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Versucht, eine Spanne von Zeichen in einen Wert zu analysieren.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = ISpanParsable<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out decimal result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As Decimal) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Die Spanne der zu analysierenden Zeichen.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu s
bereitstellt.
- result
- Decimal
Wenn diese Methode zurückgibt, enthält das Ergebnis der erfolgreichen s
Analyse oder einen undefinierten Wert bei Einem Fehler.
Gibt zurück
true
, wenn s
erfolgreich analysiert wurde, false
andernfalls .
Gilt für:
TryParse(String, IFormatProvider, Decimal)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Versucht, eine Zeichenfolge in einen Wert zu analysieren.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = IParsable<System::Decimal>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out decimal result);
static member TryParse : string * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As Decimal) As Boolean
Parameter
- s
- String
Die zu analysierende Zeichenfolge.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu s
bereitstellt.
- result
- Decimal
Wenn diese Methode zurückgibt, enthält das Ergebnis der erfolgreichen s
Analyse oder einen nicht definierten Wert bei Einem Fehler.
Gibt zurück
true
, wenn s
erfolgreich analysiert wurde, false
andernfalls .
Gilt für:
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Decimal)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Versucht, eine Spanne von UTF-8-Zeichen in einen Wert zu analysieren.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out decimal result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * decimal -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Die Spanne der zu analysierenden UTF-8-Zeichen.
- style
- NumberStyles
Eine bitweise Kombination von Zahlenformatvorlagen, die in utf8Text
vorhanden sein können.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu utf8Text
bereitstellt.
- result
- Decimal
Enthält bei rückgabe das Ergebnis der erfolgreichen Analyse oder einen nicht definierten utf8Text
Wert bei Einem Fehler.
Gibt zurück
true
, wenn utf8Text
erfolgreich analysiert wurde, false
andernfalls .
Gilt für:
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Konvertiert die Spannendarstellung 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.
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result);
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out decimal result);
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out decimal result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Die Spanne mit den Zeichen, die die zu konvertierende Zahl darstellen.
- style
- NumberStyles
Eine bitweise Kombination von Enumerationswerten, die das zulässige Format von s
angibt. Ein häufig angegebener Wert ist Number.
- provider
- IFormatProvider
Ein Objekt, das kulturabhängige Analyseinformationen über s
bereitstellt.
- result
- 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. Die Konvertierung schlägt fehl, wenn der s
Parameter null
oder Emptyist, keine Zahl in einem Format ist, das mit style
kompatibel ist, oder eine Zahl darstellt, die kleiner als Decimal.MinValue oder größer als Decimal.MaxValue ist. Dieser Parameter wird nicht initialisiert übergeben; in result
ursprünglich übergebene Werte werden ausnahmslos überschrieben.
Gibt zurück
true
, wenn s
erfolgreich konvertiert wurde, andernfalls false
.
Gilt für:
TryParse(String, NumberStyles, IFormatProvider, Decimal)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
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.
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result);
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out decimal result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out decimal result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean
Parameter
- s
- String
Die Zeichenfolgendarstellung der zu konvertierenden Zahl.
- style
- NumberStyles
Eine bitweise Kombination von Enumerationswerten, die das zulässige Format von s
angibt. Ein häufig angegebener Wert ist Number.
- provider
- IFormatProvider
Ein Objekt, das kulturabhängige Analyseinformationen über s
bereitstellt.
- result
- 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. Die Konvertierung schlägt fehl, wenn der s
Parameter null
oder Emptyist, keine Zahl in einem Format ist, das mit style
kompatibel ist, oder eine Zahl darstellt, die kleiner als Decimal.MinValue oder größer als Decimal.MaxValue ist. Dieser Parameter wird nicht initialisiert übergeben; in result
ursprünglich übergebene Werte werden ausnahmslos überschrieben.
Gibt zurück
true
, wenn s
erfolgreich konvertiert wurde, andernfalls false
.
Ausnahmen
Beispiele
Das folgende Beispiel veranschaulicht die Verwendung der TryParse(String, NumberStyles, IFormatProvider, Decimal) -Methode zum Analysieren der Zeichenfolgendarstellung einer Zahl, die einen bestimmten Stil aufweist und mit 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'.
// Parse currency value using en-GB culture.
let value = "£1,097.63"
let style = NumberStyles.Number ||| NumberStyles.AllowCurrencySymbol
let culture = CultureInfo.CreateSpecificCulture "en-GB"
match Decimal.TryParse(value, style, culture) with
| true, number ->
printfn $"Converted '{value}' to {number}."
| _ ->
printfn $"Unable to convert '{value}'."
// Displays:
// Converted '£1,097.63' to 1097.63.
let value = "1345,978"
let style = NumberStyles.AllowDecimalPoint
let culture = CultureInfo.CreateSpecificCulture "fr-FR"
match Decimal.TryParse(value, style, culture) with
| true, number ->
printfn $"Converted '{value}' to {number}."
| _ ->
printfn $"Unable to convert '{value}'."
// Displays:
// Converted '1345,978' to 1345.978.
let value = "1.345,978"
let style = NumberStyles.AllowDecimalPoint ||| NumberStyles.AllowThousands
let culture = CultureInfo.CreateSpecificCulture "es-ES"
match Decimal.TryParse(value, style, culture) with
| true, number ->
printfn $"Converted '{value}' to {number}."
| _ ->
printfn $"Unable to convert '{value}'."
// Displays:
// Converted '1.345,978' to 1345.978.
let value = "1 345,978"
match Decimal.TryParse(value, style, culture) with
| true, number ->
printfn $"Converted '{value}' to {number}."
| _ ->
printfn $"Unable to convert '{value}'."
// Displays:
// Unable to convert '1 345,978'.
Dim value As String
Dim style As NumberStyles
Dim culture As CultureInfo
Dim number As Decimal
' Parse currency value using en-GB culture.
value = "£1,097.63"
style = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol
culture = CultureInfo.CreateSpecificCulture("en-GB")
If Decimal.TryParse(value, style, culture, number) Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
Console.WriteLine("Unable to convert '{0}'.", value)
End If
' 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, number) Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
Console.WriteLine("Unable to convert '{0}'.", value)
End If
' Displays:
' Converted '1345,978' to 1345.978.
value = "1.345,978"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands
culture = CultureInfo.CreateSpecificCulture("es-ES")
If Decimal.TryParse(value, style, culture, number) Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
Console.WriteLine("Unable to convert '{0}'.", value)
End If
' Displays:
' Converted '1.345,978' to 1345.978.
value = "1 345,978"
If Decimal.TryParse(value, style, culture, number) Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
Console.WriteLine("Unable to convert '{0}'.", value)
End If
' Displays:
' Unable to convert '1 345,978'.
Hinweise
Diese Überladung unterscheidet sich von der Decimal.Parse(String, NumberStyles, IFormatProvider) -Methode, indem sie einen booleschen Wert zurückgibt, der angibt, ob der Analysevorgang erfolgreich war, anstatt den analysierten numerischen Wert zurückzugeben. Es entfällt die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um im Fall eines FormatException zu testen, das s
ungültig ist und nicht erfolgreich analysiert werden kann.
Der style
Parameter definiert das zulässige Format des s
Parameters, damit der Analysevorgang erfolgreich ist. Es muss sich um eine Kombination von Bitflags aus der NumberStyles Enumeration handeln. Die folgenden NumberStyles Member werden nicht unterstützt:
Abhängig vom Wert des Stils kann der s
Parameter die folgenden Elemente enthalten:
[ws] [$] [sign] [Digits,]digits[.fractional-digits][e[sign]digits][ws]
Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle wird jedes Element beschrieben.
Element | Beschreibung |
---|---|
ws | Optionaler Leerraum. Leerzeichen können am Anfang von s angezeigt werden, wenn style das NumberStyles.AllowLeadingWhite Flag enthalten ist. Es 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 durch die NumberFormatInfo.CurrencyNegativePattern Eigenschaften oder NumberFormatInfo.CurrencyPositivePattern des Objekts definiert, das NumberFormatInfo 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 Zeichen. |
Zahlen | Eine Sequenz von Ziffern im Bereich von 0 bis 9. |
. | Ein kulturspezifisches Dezimaltrennzeichen. |
Bruchstellen | Eine Sequenz von Ziffern im Bereich von 0 bis 9. |
Der style
Parameter gibt das zulässige Format des s
Parameters an und kann eine oder NumberStyles mehrere enumerierte Konstanten sein, die mithilfe einer bitweisen OR-Operation kombiniert werden. Wenn style
NULL ist, s
wird mithilfe des NumberStyles.Number Stils interpretiert.
Der provider
Parameter ist eine IFormatProvider Implementierung, z. B. ein - oder CultureInfo -NumberFormatInfoObjekt. Der provider
Parameter stellt kulturspezifische Informationen bereit, die bei der Analyse verwendet werden. Wenn provider
gleich null
ist, wird die aktuelle Threadkultur verwendet.
Ein Decimal -Objekt hat eine Genauigkeit von 29 Ziffern. Wenn s
eine Zahl darstellt, die mehr als 29 Ziffern hat, aber einen Teilbruch aufweist und innerhalb des Bereichs von MaxValue und MinValueliegt, wird die Zahl durch Rundung auf 29 Ziffern gerundet, nicht abgeschnitten.
Wenn im s
Parameter während eines Analysevorgangs ein Trennzeichen auftritt und die entsprechenden Währungs- oder Zahlendezimal- und Gruppentrennzeichen identisch sind, wird beim Analysevorgang davon ausgegangen, dass das Trennzeichen ein Dezimaltrennzeichen und kein Gruppentrennzeichen ist. Weitere Informationen zu Trennzeichen finden Sie unter CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatorund NumberGroupSeparator.
Weitere Informationen
Gilt für:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für