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.
Konvertiert die Zeichenfolgendarstellung einer Zahl in die Decimal Entsprechung. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.
Überlädt
TryParse(ReadOnlySpan<Byte>, Decimal) |
Versucht, einen UTF-8-Zeichenbereich zu konvertieren, der die Zeichenfolgendarstellung einer Zahl in die signierte Dezimalentsprechung enthält. |
TryParse(ReadOnlySpan<Char>, Decimal) |
Konvertiert die Spandarstellung einer Zahl in das Decimal Äquivalent mithilfe des kulturspezifischen Formats. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist. |
TryParse(String, Decimal) |
Konvertiert die Zeichenfolgendarstellung einer Zahl in die Decimal Entsprechung. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal) |
Versucht, eine Spanne von UTF-8 Zeichen in einen Wert zu analysieren. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal) |
Versucht, einen Bereich 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 Spandarstellung einer Zahl in die Decimal Entsprechung mithilfe des angegebenen Formatvorlagen- und kulturspezifischen Formats. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist. |
TryParse(String, NumberStyles, IFormatProvider, Decimal) |
Konvertiert die Zeichenfolgendarstellung einer Zahl in die Decimal Entsprechung mit dem angegebenen Format und dem kulturspezifischen Format. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist. |
TryParse(ReadOnlySpan<Byte>, Decimal)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Versucht, einen UTF-8-Zeichenbereich zu konvertieren, der die Zeichenfolgendarstellung einer Zahl in die signierte Dezimalentsprechung enthält.
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 mit den UTF-8-Zeichen, die die zu konvertierende Zahl darstellen.
- result
- Decimal
Wenn diese Methode zurückgegeben wird, enthält sie den signierten 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. alle ursprünglich im Ergebnis angegebenen Werte werden ü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 Spandarstellung einer Zahl in das Decimal Äquivalent mithilfe des kulturspezifischen Formats. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.
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>
Eine Spanne mit den Zeichen, die die zu konvertierende Zahl darstellen.
- result
- Decimal
Wenn diese Methode zurückgegeben wird, enthält sie die Decimal Zahl, die dem numerischen Wert entspricht, der in s
enthalten ist, wenn die Konvertierung erfolgreich war, oder null, wenn die Konvertierung fehlgeschlagen ist. Die Konvertierung schlägt fehl, wenn der s
-Parameter null
oder Empty ist oder eine Zahl kleiner als Decimal.MinValue- oder größer als Decimal.MaxValue-darstellt. Dieser Parameter wird uininitialisiert; alle ursprünglich in result
bereitgestellten Werte werden ü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
Konvertiert die Zeichenfolgendarstellung einer Zahl in die Decimal Entsprechung. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.
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
Wenn diese Methode zurückgegeben wird, enthält sie die Decimal Zahl, die dem numerischen Wert entspricht, der in s
enthalten ist, wenn die Konvertierung erfolgreich war, oder null, wenn die Konvertierung fehlgeschlagen ist. 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.MaxValuedarstellt. Dieser Parameter wird uininitialisiert; alle ursprünglich in result
bereitgestellten Werte werden ü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 Decimal Werte zu 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 durch Zurückgeben eines booleschen Werts, der angibt, ob der Analysevorgang erfolgreich war, anstatt den analysierten numerischen Wert zurückzugeben. Es beseitigt die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um eine FormatException zu testen, wenn s
ungültig ist und nicht erfolgreich analysiert werden kann.
Der Parameter s
enthält eine Zahl des Formulars:
[ws] [Zeichen] [Ziffern;]Ziffern[.bruchstellen][ws]
Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle werden die einzelnen Elemente beschrieben.
Element | Beschreibung |
---|---|
ws | Optionaler Leerraum. |
signieren | Ein optionales Zeichen. |
Ziffern | Eine Sequenz von Ziffern zwischen 0 und 9. |
, | Ein kulturspezifisches Tausendertrennzeichen. |
. | Ein kulturspezifisches Dezimalkommasymbol. |
Dezimalstellen | Eine Sequenz von Ziffern zwischen 0 und 9. |
Parameters
mithilfe der NumberStyles.Number-Formatvorlage interpretiert wird. Dies bedeutet, dass Leerzeichen und Tausendertrennzeichen zulässig sind, währungssymbole jedoch nicht. Um die Elemente (z. B. Währungssymbole, Tausendertrennzeichen und Leerzeichen) explizit zu definieren, die in s
vorhanden sein können, verwenden Sie die Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) Methodenüberladung.
Parameters
mithilfe der Formatierungsinformationen in einem NumberFormatInfo Objekt analysiert wird, 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
mit Rundung auf das nächste gerundet.
Ein Decimal-Objekt weist 29 Ziffern Genauigkeit auf. Wenn s
eine Zahl mit mehr als 29 Ziffern darstellt, aber einen Bruchteil aufweist und sich innerhalb des Bereichs von MaxValue und MinValuebefindet, wird die Zahl gerundet, nicht abgeschnitten, auf 29 Ziffern mit Rundung auf die nächste Stelle gerundet.
Wenn während eines Analysevorgangs ein Trennzeichen im s
-Parameter gefunden wird und die anwendbaren Währungs- oder Zahlendezimal- und Gruppentrennzeichen identisch sind, geht der Analysevorgang davon aus, dass es sich bei dem Trennzeichen um ein Dezimaltrennzeichen anstelle eines Gruppentrennzeichens handelt. 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 von UTF-8 Zeichen, die analysiert werden sollen.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu utf8Text
bereitstellt.
- result
- Decimal
Enthält das Ergebnis der erfolgreichen Analyse utf8Text
oder eines nicht definierten Werts für fehler.
Gibt zurück
true
, wenn utf8Text
erfolgreich analysiert wurde; andernfalls false
.
Gilt für:
TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Versucht, einen Bereich 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ückgegeben wird, enthält das Ergebnis der erfolgreichen Analyse s
oder eines nicht definierten Werts für fehler.
Gibt zurück
true
, wenn s
erfolgreich analysiert wurde; andernfalls false
.
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ückgegeben wird, enthält das Ergebnis der erfolgreichen Analyse s
oder eines nicht definierten Werts für fehler.
Gibt zurück
true
, wenn s
erfolgreich analysiert wurde; andernfalls false
.
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 von UTF-8 Zeichen, die analysiert werden sollen.
- style
- NumberStyles
Eine bitweise Kombination aus Zahlenformatvorlagen, die in utf8Text
vorhanden sein können.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu utf8Text
bereitstellt.
- result
- Decimal
Enthält das Ergebnis der erfolgreichen Analyse utf8Text
oder eines nicht definierten Werts für fehler.
Gibt zurück
true
, wenn utf8Text
erfolgreich analysiert wurde; andernfalls false
.
Gilt für:
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Konvertiert die Spandarstellung einer Zahl in die Decimal Entsprechung mithilfe des angegebenen Formatvorlagen- und kulturspezifischen Formats. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.
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>
Eine 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 typischer Wert, der angegeben werden soll, ist Number.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Analyseinformationen zu s
bereitstellt.
- result
- Decimal
Wenn diese Methode zurückgegeben wird, enthält sie die Decimal Zahl, die dem numerischen Wert entspricht, der in s
enthalten ist, wenn die Konvertierung erfolgreich war, oder null, wenn die Konvertierung fehlgeschlagen ist. 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 kleiner als Decimal.MinValue oder größer als Decimal.MaxValuedarstellt. Dieser Parameter wird uininitialisiert; alle ursprünglich in result
bereitgestellten Werte werden ü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 in die Decimal Entsprechung mit dem angegebenen Format und dem kulturspezifischen Format. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.
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 typischer Wert, der angegeben werden soll, ist Number.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Analyseinformationen zu s
bereitstellt.
- result
- Decimal
Wenn diese Methode zurückgegeben wird, enthält sie die Decimal Zahl, die dem numerischen Wert entspricht, der in s
enthalten ist, wenn die Konvertierung erfolgreich war, oder null, wenn die Konvertierung fehlgeschlagen ist. 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 kleiner als Decimal.MinValue oder größer als Decimal.MaxValuedarstellt. Dieser Parameter wird uininitialisiert; alle ursprünglich in result
bereitgestellten Werte werden überschrieben.
Gibt zurück
true
, wenn s
erfolgreich konvertiert wurde; andernfalls false
.
Ausnahmen
Beispiele
Im folgenden Beispiel wird die Verwendung der TryParse(String, NumberStyles, IFormatProvider, Decimal)-Methode veranschaulicht, um die Zeichenfolgendarstellung einer Zahl zu analysieren, die eine bestimmte Formatvorlage aufweist und mithilfe der 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'.
// 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 durch Zurückgeben eines booleschen Werts, der angibt, ob der Analysevorgang erfolgreich war, anstatt den analysierten numerischen Wert zurückzugeben. Es beseitigt die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um eine FormatException zu testen, wenn s
ungültig ist und nicht erfolgreich analysiert werden kann.
Der parameter style
definiert das zulässige Format des s
Parameters, damit der Analysevorgang erfolgreich ausgeführt werden kann. Es muss sich um eine Kombination aus Bitkennzeichnungen aus der NumberStyles Enumeration sein. Die folgenden NumberStyles Mitglieder werden nicht unterstützt:
Abhängig vom Wert der Formatvorlage kann der s
Parameter die folgenden Elemente enthalten:
[ws] [$] [Zeichen] [Ziffern;]Ziffern[.bruchstellen][e[Vorzeichen][Zeichen][ws]
Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle werden die einzelnen Elemente beschrieben.
Element | Beschreibung |
---|---|
ws | Optionaler Leerraum. Leerzeichen können am Anfang s angezeigt werden, wenn style das NumberStyles.AllowLeadingWhite Flag enthält. Sie kann am Ende der s angezeigt werden, wenn style das NumberStyles.AllowTrailingWhite Flag enthält. |
$ | Ein kulturspezifisches Währungssymbol. Die Position in der Zeichenfolge wird durch die eigenschaften NumberFormatInfo.CurrencyNegativePattern oder NumberFormatInfo.CurrencyPositivePattern 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. |
signieren | Ein optionales Zeichen. |
Ziffern | Eine Sequenz von Ziffern zwischen 0 und 9. |
. | Ein kulturspezifisches Dezimalkommasymbol. |
Dezimalstellen | Eine Sequenz von Ziffern zwischen 0 und 9. |
Der parameter style
gibt das zulässige Format des s
Parameters an und kann eine oder mehrere NumberStyles aufgezählten Konstanten sein, die mit einem bitweisen OR-Vorgang kombiniert werden. Wenn style
null ist, wird s
mithilfe der NumberStyles.Number Formatvorlage interpretiert.
Der provider
-Parameter ist eine IFormatProvider Implementierung, z. B. ein NumberFormatInfo- oder CultureInfo-Objekt. Der parameter provider
liefert kulturspezifische Informationen, die bei der Analyse verwendet werden. Wenn provider
null
ist, wird die aktuelle Threadkultur verwendet.
Ein Decimal-Objekt weist 29 Ziffern Genauigkeit auf. Wenn s
eine Zahl mit mehr als 29 Ziffern darstellt, aber einen Bruchteil aufweist und sich innerhalb des Bereichs von MaxValue und MinValuebefindet, wird die Zahl gerundet, nicht abgeschnitten, auf 29 Ziffern mit Rundung auf die nächste Stelle gerundet.
Wenn während eines Analysevorgangs ein Trennzeichen im s
-Parameter auftritt und die anwendbaren Währungs- oder Zahlendezimal- und Gruppentrennzeichen identisch sind, wird bei dem Analysevorgang davon ausgegangen, dass es sich bei dem Trennzeichen um ein Dezimaltrennzeichen anstelle eines Gruppentrennzeichens handelt. Weitere Informationen zu Trennzeichen finden Sie unter CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatorund NumberGroupSeparator.