Decimal.Parse 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.
Überlädt
Parse(String) |
Konvertiert die Zeichenfolgendarstellung einer Zahl in die Decimal Entsprechung. |
Parse(ReadOnlySpan<Byte>, IFormatProvider) |
Analysiert eine Spanne von UTF-8 Zeichen in einen Wert. |
Parse(ReadOnlySpan<Char>, IFormatProvider) |
Analysiert eine Spanne von Zeichen in einen Wert. |
Parse(String, NumberStyles) |
Konvertiert die Zeichenfolgendarstellung einer Zahl in einer angegebenen Formatvorlage in die Decimal Entsprechung. |
Parse(String, IFormatProvider) |
Konvertiert die Zeichenfolgendarstellung einer Zahl in die Decimal Entsprechung mithilfe der angegebenen kulturspezifischen Formatinformationen. |
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider) |
Analysiert eine Spanne von UTF-8 Zeichen in einen Wert. |
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
Konvertiert die Spandarstellung einer Zahl in die Decimal Entsprechung mithilfe des angegebenen Formatvorlagen- und kulturspezifischen Formats. |
Parse(String, NumberStyles, IFormatProvider) |
Konvertiert die Zeichenfolgendarstellung einer Zahl in die Decimal Entsprechung mit dem angegebenen Format und dem kulturspezifischen Format. |
Parse(String)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Konvertiert die Zeichenfolgendarstellung einer Zahl in die Decimal Entsprechung.
public:
static System::Decimal Parse(System::String ^ s);
public static decimal Parse (string s);
static member Parse : string -> decimal
Public Shared Function Parse (s As String) As Decimal
Parameter
- s
- String
Die Zeichenfolgendarstellung der zu konvertierenden Zahl.
Gibt zurück
Entspricht der in s
enthaltenen Zahl.
Ausnahmen
s
ist null
.
s
ist nicht im richtigen Format vorhanden.
s
stellt eine Zahl dar, die kleiner als Decimal.MinValue oder größer als Decimal.MaxValue-ist.
Beispiele
Im folgenden Codebeispiel wird die Parse(String)-Methode verwendet, um Zeichenfolgendarstellungen von Decimal Werten zu analysieren.
string value;
decimal number;
// Parse an integer with thousands separators.
value = "16,523,421";
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '16,523,421' converted to 16523421.
// Parse a floating point value with thousands separators
value = "25,162.1378";
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '25,162.1378' converted to 25162.1378.
// Parse a floating point number with US currency symbol.
value = "$16,321,421.75";
try
{
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
// Unable to parse '$16,321,421.75'.
// Parse a number in exponential notation
value = "1.62345e-02";
try
{
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
// Unable to parse '1.62345e-02'.
// Parse an integer with thousands separators.
let value = "16,523,421"
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
// Displays:
// '16,523,421' converted to 16523421.
// Parse a floating point value with thousands separators
let value = "25,162.1378"
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
// Displays:
// '25,162.1378' converted to 25162.1378.
// Parse a floating point number with US currency symbol.
let value = "$16,321,421.75"
try
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Displays:
// Unable to parse '$16,321,421.75'.
// Parse a number in exponential notation
let value = "1.62345e-02"
try
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Displays:
// Unable to parse '1.62345e-02'.
Dim value As String
Dim number As Decimal
' Parse an integer with thousands separators.
value = "16,523,421"
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '16,523,421' converted to 16523421.
' Parse a floating point value with thousands separators
value = "25,162.1378"
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '25,162.1378' converted to 25162.1378.
' Parse a floating point number with US currency symbol.
value = "$16,321,421.75"
Try
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
' Unable to parse '$16,321,421.75'.
' Parse a number in exponential notation
value = "1.62345e-02"
Try
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
' Unable to parse '1.62345e-02'.
Hinweise
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 entweder die Decimal.Parse(String, NumberStyles) oder die Decimal.Parse(String, NumberStyles, IFormatProvider)-Methode.
Parameters
mithilfe der Formatierungsinformationen in einer NumberFormatInfo initialisiert für die aktuelle Systemkultur analysiert wird. Weitere Informationen finden Sie unter CurrentInfo. Um eine Zeichenfolge mithilfe der Formatierungsinformationen einer anderen Kultur zu analysieren, verwenden Sie die methode Decimal.Parse(String, IFormatProvider) oder Decimal.Parse(String, NumberStyles, IFormatProvider).
Bei Bedarf wird der Wert von s
mit Rundung auf das nächste gerundet.
Ein Decimal hat 29 Ziffern Genauigkeit. 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:
Parse(ReadOnlySpan<Byte>, IFormatProvider)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Analysiert eine Spanne von UTF-8 Zeichen in einen Wert.
public:
static System::Decimal Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<System::Decimal>::Parse;
public static decimal Parse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> decimal
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As Decimal
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Die Spanne von UTF-8 Zeichen, die analysiert werden sollen.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu utf8Text
bereitstellt.
Gibt zurück
Das Ergebnis der Analyse utf8Text
.
Implementiert
Gilt für:
Parse(ReadOnlySpan<Char>, IFormatProvider)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Analysiert eine Spanne von Zeichen in einen Wert.
public:
static System::Decimal Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<System::Decimal>::Parse;
public static decimal Parse (ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> decimal
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As Decimal
Parameter
- s
- ReadOnlySpan<Char>
Die Spanne der zu analysierenden Zeichen.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu s
bereitstellt.
Gibt zurück
Das Ergebnis der Analyse s
.
Implementiert
Gilt für:
Parse(String, NumberStyles)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Konvertiert die Zeichenfolgendarstellung einer Zahl in einer angegebenen Formatvorlage in die Decimal Entsprechung.
public:
static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style);
public static decimal Parse (string s, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> decimal
Public Shared Function Parse (s As String, style As NumberStyles) As Decimal
Parameter
- s
- String
Die Zeichenfolgendarstellung der zu konvertierenden Zahl.
- style
- NumberStyles
Eine bitweise Kombination aus NumberStyles Werten, die die Formatvorlagenelemente angibt, die in s
vorhanden sein können. Ein typischer Wert, der angegeben werden soll, ist Number.
Gibt zurück
Die Decimal Zahl, die der in s
enthaltenen Zahl entspricht, wie durch style
angegeben.
Ausnahmen
s
ist null
.
s
ist nicht im richtigen Format vorhanden.
s
stellt eine Zahl dar, die kleiner als Decimal.MinValue oder größer als Decimal.MaxValue-
Beispiele
Im folgenden Codebeispiel wird die Parse(String, NumberStyles)-Methode verwendet, um die Zeichenfolgendarstellungen Decimal Werte mithilfe der en-US Kultur zu analysieren.
string value;
decimal number;
NumberStyles style;
// Parse string with a floating point value using NumberStyles.None.
value = "8694.12";
style = NumberStyles.None;
try
{
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
// Unable to parse '8694.12'.
// Parse string with a floating point value and allow decimal point.
style = NumberStyles.AllowDecimalPoint;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '8694.12' converted to 8694.12.
// Parse string with negative value in parentheses
value = "(1,789.34)";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands |
NumberStyles.AllowParentheses;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '(1,789.34)' converted to -1789.34.
// Parse string using Number style
value = " -17,623.49 ";
style = NumberStyles.Number;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// ' -17,623.49 ' converted to -17623.49.
// Parse string with a floating point value using NumberStyles.None.
let value = "8694.12"
let style = NumberStyles.None
try
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Displays:
// Unable to parse '8694.12'.
// Parse string with a floating point value and allow decimal point.
let style = NumberStyles.AllowDecimalPoint
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
// '8694.12' converted to 8694.12.
// Parse string with negative value in parentheses
let value = "(1,789.34)"
let style =
NumberStyles.AllowDecimalPoint |||
NumberStyles.AllowThousands |||
NumberStyles.AllowParentheses
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
// '(1,789.34)' converted to -1789.34.
// Parse string using Number style
let value = " -17,623.49 "
let style = NumberStyles.Number
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
// ' -17,623.49 ' converted to -17623.49.
Dim value As String
Dim number As Decimal
Dim style As NumberStyles
' Parse string with a floating point value using NumberStyles.None.
value = "8694.12"
style = NumberStyles.None
Try
number = Decimal.Parse(value, style)
Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
' Unable to parse '8694.12'.
' Parse string with a floating point value and allow decimal point.
style = NumberStyles.AllowDecimalPoint
number = Decimal.Parse(value, style)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '8694.12' converted to 8694.12.
' Parse string with negative value in parentheses
value = "(1,789.34)"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands Or _
NumberStyles.AllowParentheses
number = Decimal.Parse(value, style)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '(1,789.34)' converted to -1789.34.
' Parse string using Number style
value = " -17,623.49 "
style = NumberStyles.Number
number = Decimal.Parse(value, style)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' ' -17,623.49 ' converted to -17623.49.
Hinweise
Der parameter style
definiert die Formatvorlagenelemente (z. B. Tausendertrennzeichen, Leerzeichen und Währungssymbole), die im parameter s
zulässig sind, 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 von style
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, und es 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 und NumberFormatInfo.CurrencyPositivePattern der aktuellen Kultur definiert. Das Währungssymbol der aktuellen Kultur kann in s angezeigt werden, wenn style das NumberStyles.AllowCurrencySymbol Flag enthält. |
signieren | Ein optionales Zeichen. Das Zeichen kann am Anfang der s angezeigt werden, wenn style das NumberStyles.AllowLeadingSign Flag enthält, und es kann am Ende s angezeigt werden, wenn style das NumberStyles.AllowTrailingSign Flag enthält. Klammern können in s verwendet werden, um einen negativen Wert anzugeben, wenn style das NumberStyles.AllowParentheses Flag enthält. |
Ziffern | Eine Sequenz von Ziffern zwischen 0 und 9. |
, | Ein kulturspezifisches Tausendertrennzeichen. Das Tausendertrennzeichen der aktuellen Kultur kann in s angezeigt werden, wenn style das NumberStyles.AllowThousands Flag enthält. |
. | Ein kulturspezifisches Dezimalkommasymbol. Das Dezimalkommasymbol der aktuellen Kultur kann in s angezeigt werden, wenn style das NumberStyles.AllowDecimalPoint Flag enthält. |
Dezimalstellen | Eine Sequenz von Ziffern zwischen 0 und 9. Dezimalstellen können nur in s angezeigt werden, wenn style das NumberStyles.AllowDecimalPoint Flag enthält. |
e | Das Zeichen "e" oder "E", das angibt, dass der Wert in exponentieller Schreibweise dargestellt wird. Der s -Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das NumberStyles.AllowExponent Flag enthält. |
Anmerkung
Alle endenden NUL-Zeichen (U+0000) in s
werden unabhängig vom Wert des arguments style
vom Analysevorgang ignoriert.
Eine Zeichenfolge mit Ziffern (die der None Formatvorlage entspricht) analysiert immer erfolgreich, wenn sie sich im Bereich des Decimal Typs befindet. Die übrigen NumberStyles Member-Steuerelementelemente, die möglicherweise vorhanden, aber nicht in der Eingabezeichenfolge vorhanden sein müssen. In der folgenden Tabelle wird angegeben, wie sich einzelne NumberStyles Member auf die Elemente auswirken, die in s
vorhanden sein können.
NumberStyles-Wert | Elemente, die zusätzlich zu Ziffern in s zulässig sind |
---|---|
None | Nur die Ziffern Element. |
AllowDecimalPoint | Die . und Bruchzahlen Elemente. |
AllowExponent | Der parameter s kann auch exponentielle Notation verwenden. Dieses Kennzeichen unterstützt Werte im Formular ZiffernEZiffern; Zusätzliche Flags werden benötigt, um Zeichenfolgen erfolgreich mit Elementen wie positiven oder negativen Zeichen und Dezimalkommasymbolen zu analysieren. |
AllowLeadingWhite | Das ws-Element am Anfang s . |
AllowTrailingWhite | Das ws-Element am Ende s . |
AllowLeadingSign | Das signieren Element am Anfang s . |
AllowTrailingSign | Das signieren Element am Ende s . |
AllowParentheses | Das Zeichen Element in Form von Klammern, die den numerischen Wert einschließen. |
AllowThousands | Das --Element. |
AllowCurrencySymbol | Das $-Element. |
Currency | Alle. Der parameter s kann keine hexadezimale Zahl oder eine Zahl in exponentieller Schreibweise darstellen. |
Float | Das ws-Element am Anfang oder Ende der s , Zeichen am Anfang s , und das . -Symbol. Der parameter s kann auch exponentielle Notation verwenden. |
Number | Die Elemente ws , sign , , und . . |
Any | Alle Formatvorlagen, mit Ausnahme von s , können keine hexadezimale Zahl darstellen. |
Der s
-Parameter wird mithilfe der Formatierungsinformationen in einem NumberFormatInfo Objekt analysiert, das für die aktuelle Systemkultur initialisiert wurde. Weitere Informationen finden Sie unter CurrentInfo.
Ein Decimal hat 29 Ziffern Genauigkeit. 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 parameter s
gefunden wird, enthält styles
die werte NumberStyles.AllowThousands und NumberStyles.AllowDecimalPoint, und die anwendbaren Währungs- oder Zahlendezimal- und Gruppentrennzeichen sind identisch, wird beim Analysevorgang davon ausgegangen, dass es sich bei dem Trennzeichen um ein Dezimaltrennzeichen und nicht um ein Gruppentrennzeichen handelt. Weitere Informationen zu Trennzeichen finden Sie unter CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatorund NumberGroupSeparator.
Weitere Informationen
Gilt für:
Parse(String, IFormatProvider)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Konvertiert die Zeichenfolgendarstellung einer Zahl in die Decimal Entsprechung mithilfe der angegebenen kulturspezifischen Formatinformationen.
public:
static System::Decimal Parse(System::String ^ s, IFormatProvider ^ provider);
public:
static System::Decimal Parse(System::String ^ s, IFormatProvider ^ provider) = IParsable<System::Decimal>::Parse;
public static decimal Parse (string s, IFormatProvider provider);
public static decimal Parse (string s, IFormatProvider? provider);
static member Parse : string * IFormatProvider -> decimal
Public Shared Function Parse (s As String, provider As IFormatProvider) As Decimal
Parameter
- s
- String
Die Zeichenfolgendarstellung der zu konvertierenden Zahl.
- provider
- IFormatProvider
Eine IFormatProvider, die kulturspezifische Analyseinformationen zu s
bereitstellt.
Gibt zurück
Die Decimal Zahl, die der in s
enthaltenen Zahl entspricht, wie durch provider
angegeben.
Implementiert
Ausnahmen
s
ist null
.
s
ist nicht das richtige Format.
s
stellt eine Zahl dar, die kleiner als Decimal.MinValue oder größer als Decimal.MaxValue-ist.
Beispiele
Das folgende Beispiel ist der Button Click-Ereignishandler eines Webformulars. Es verwendet das von der HttpRequest.UserLanguages-Eigenschaft zurückgegebene Array, um das Gebietsschema des Benutzers zu bestimmen. Anschließend instanziiert es ein CultureInfo-Objekt, das diesem Gebietsschema entspricht. Das NumberFormatInfo-Objekt, das zu diesem CultureInfo-Objekt gehört, wird dann an die Parse(String, IFormatProvider)-Methode übergeben, um die Eingabe des Benutzers 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();
}
Protected Sub OkToDecimal_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OkToDecimal.Click
Dim locale As String
Dim culture As CultureInfo
Dim number As Decimal
' Return if string is empty
If String.IsNullOrEmpty(Me.inputNumber.Text) Then Exit Sub
' Get locale of web request to determine possible format of number
If Request.UserLanguages.Length = 0 Then Exit Sub
locale = Request.UserLanguages(0)
If String.IsNullOrEmpty(locale) Then Exit Sub
' 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(Me.inputNumber.Text, culture.NumberFormat)
Catch ex As FormatException
Exit Sub
Catch ex As Exception
Exit Sub
End Try
' Output number to label on web form
Me.outputNumber.Text = "Number is " & number.ToString()
End Sub
Hinweise
Diese Überladung der Parse(String, IFormatProvider)-Methode wird häufig verwendet, um Text zu konvertieren, der auf unterschiedliche Weise in einen Decimal-Wert formatiert werden kann. Beispielsweise kann er verwendet werden, um den von einem Benutzer eingegebenen Text in ein HTML-Textfeld in einen numerischen Wert zu konvertieren.
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. |
Der s
-Parameter wird mithilfe der NumberStyles.Number-Formatvorlage interpretiert. 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.Parse(String, NumberStyles, IFormatProvider)-Methode.
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.
Weitere Informationen
Gilt für:
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)
- Quelle:
- Decimal.cs
- Quelle:
- Decimal.cs
Analysiert eine Spanne von UTF-8 Zeichen in einen Wert.
public static decimal Parse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Number, Optional provider As IFormatProvider = Nothing) As Decimal
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.
Gibt zurück
Das Ergebnis der Analyse utf8Text
.
Implementiert
Gilt für:
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
- 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.
public static decimal Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider? provider = default);
public static decimal Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Number, Optional provider As IFormatProvider = Nothing) As Decimal
Parameter
- s
- ReadOnlySpan<Char>
Die Spanne mit den Zeichen, die die zu konvertierende Zahl darstellen.
- style
- NumberStyles
Eine bitweise Kombination aus NumberStyles Werten, die die Formatvorlagenelemente angibt, die in s
vorhanden sein können. Ein typischer Wert, der angegeben werden soll, ist Number.
- provider
- IFormatProvider
Ein IFormatProvider-Objekt, das kulturspezifische Informationen zum Format von s
bereitstellt.
Gibt zurück
Die Decimal Zahl, die der in s
enthaltenen Zahl entspricht, wie durch style
und provider
angegeben.
Implementiert
Gilt für:
Parse(String, NumberStyles, IFormatProvider)
- 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.
public:
static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<System::Decimal>::Parse;
public static decimal Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
public static decimal Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As Decimal
Parameter
- s
- String
Die Zeichenfolgendarstellung der zu konvertierenden Zahl.
- style
- NumberStyles
Eine bitweise Kombination aus NumberStyles Werten, die die Formatvorlagenelemente angibt, die in s
vorhanden sein können. Ein typischer Wert, der angegeben werden soll, ist Number.
- provider
- IFormatProvider
Ein IFormatProvider-Objekt, das kulturspezifische Informationen zum Format von s
bereitstellt.
Gibt zurück
Die Decimal Zahl, die der in s
enthaltenen Zahl entspricht, wie durch style
und provider
angegeben.
Implementiert
Ausnahmen
s
ist nicht im richtigen Format vorhanden.
s
stellt eine Zahl dar, die kleiner als Decimal.MinValue oder größer als Decimal.MaxValue-ist.
s
ist null
.
Beispiele
Im folgenden Beispiel wird eine Vielzahl von style
und provider
Parameter verwendet, um die Zeichenfolgendarstellungen von Decimal Werten zu analysieren.
string value;
decimal number;
NumberStyles style;
CultureInfo provider;
// Parse string using " " as the thousands separator
// and "," as the decimal separator for fr-FR culture.
value = "892 694,12";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands;
provider = new CultureInfo("fr-FR");
number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '892 694,12' converted to 892694.12.
try
{
number = Decimal.Parse(value, style, CultureInfo.InvariantCulture);
Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
// Unable to parse '892 694,12'.
// Parse string using "$" as the currency symbol for en-GB and
// en-US cultures.
value = "$6,032.51";
style = NumberStyles.Number | NumberStyles.AllowCurrencySymbol;
provider = new CultureInfo("en-GB");
try
{
number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
// Unable to parse '$6,032.51'.
provider = new CultureInfo("en-US");
number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '$6,032.51' converted to 6032.51.
// Parse string using " " as the thousands separator
// and "," as the decimal separator for fr-FR culture.
let value = "892 694,12"
let style = NumberStyles.AllowDecimalPoint ||| NumberStyles.AllowThousands
let provider = CultureInfo "fr-FR"
let number = Decimal.Parse(value, style, provider)
printfn $"'{value}' converted to {number}."
// Displays:
// '892 694,12' converted to 892694.12.
try
let number = Decimal.Parse(value, style, CultureInfo.InvariantCulture)
printfn $"'{value}' converted to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Displays:
// Unable to parse '892 694,12'.
// Parse string using "$" as the currency symbol for en-GB and
// en-US cultures.
let value = "$6,032.51"
let style = NumberStyles.Number ||| NumberStyles.AllowCurrencySymbol
let provider = CultureInfo "en-GB"
try
let number = Decimal.Parse(value, style, provider)
printfn $"'{value}' converted to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Displays:
// Unable to parse '$6,032.51'.
let provider = CultureInfo "en-US"
let number = Decimal.Parse(value, style, provider)
printfn $"'{value}' converted to {number}."
// Displays:
// '$6,032.51' converted to 6032.51.
Dim value As String
Dim number As Decimal
Dim style As NumberStyles
Dim provider As CultureInfo
' Parse string using " " as the thousands separator
' and "," as the decimal separator for fr-FR culture.
value = "892 694,12"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands
provider = New CultureInfo("fr-FR")
number = Decimal.Parse(value, style, provider)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '892 694,12' converted to 892694.12.
Try
number = Decimal.Parse(value, style, CultureInfo.InvariantCulture)
Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
' Unable to parse '892 694,12'.
' Parse string using "$" as the currency symbol for en-GB and
' en-US cultures.
value = "$6,032.51"
style = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol
provider = New CultureInfo("en-GB")
Try
number = Decimal.Parse(value, style, provider)
Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
' Unable to parse '$6,032.51'.
provider = New CultureInfo("en-US")
number = Decimal.Parse(value, style, provider)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '$6,032.51' converted to 6032.51.
Hinweise
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 von style
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 |
---|---|
$ | Ein kulturspezifisches Währungssymbol. Die Position in der Zeichenfolge wird durch die eigenschaften CurrencyNegativePattern und CurrencyPositivePattern des NumberFormatInfo Objekts definiert, das von der GetFormat Methode des provider Parameters zurückgegeben wird. Das Währungssymbol kann in s angezeigt werden, wenn style das NumberStyles.AllowCurrencySymbol Flag enthält. |
ws | Optionaler Leerraum. Leerzeichen können am Anfang s angezeigt werden, wenn style das NumberStyles.AllowLeadingWhite Flag enthält, und es kann am Ende der s angezeigt werden, wenn style das NumberStyles.AllowTrailingWhite Flag enthält. |
signieren | Ein optionales Zeichen. Das Zeichen kann am Anfang der s angezeigt werden, wenn style das NumberStyles.AllowLeadingSign Flag enthält, und es kann am Ende s angezeigt werden, wenn style das NumberStyles.AllowTrailingSign Flag enthält. Klammern können in s verwendet werden, um einen negativen Wert anzugeben, wenn style das NumberStyles.AllowParentheses Flag enthält. |
Ziffern | Eine Sequenz von Ziffern zwischen 0 und 9. |
, | Ein kulturspezifisches Tausendertrennzeichen. Das Tausendertrennzeichen der durch provider definierten Kultur kann in s angezeigt werden, wenn style die NumberStyles.AllowThousands-Kennzeichnung enthält. |
. | Ein kulturspezifisches Dezimalkommasymbol. Das Dezimalkommasymbol der durch provider definierten Kultur kann in s angezeigt werden, wenn style die NumberStyles.AllowDecimalPoint-Kennzeichnung enthält. |
Dezimalstellen | Eine Sequenz von Ziffern zwischen 0 und 9. Dezimalstellen können nur in s angezeigt werden, wenn style das NumberStyles.AllowDecimalPoint Flag enthält. |
e | Das Zeichen "e" oder "E", das angibt, dass der Wert in exponentieller Schreibweise dargestellt wird. Der s -Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das NumberStyles.AllowExponent Flag enthält. |
Anmerkung
Alle endenden NUL-Zeichen (U+0000) in s
werden unabhängig vom Wert des arguments style
vom Analysevorgang ignoriert.
Eine Zeichenfolge mit Ziffern (die der None Formatvorlage entspricht) analysiert immer erfolgreich, wenn sie sich im Bereich des Decimal Typs befindet. Die übrigen NumberStyles Member-Steuerelementelemente, die möglicherweise vorhanden, aber nicht in der Eingabezeichenfolge vorhanden sein müssen. In der folgenden Tabelle wird angegeben, wie sich einzelne NumberStyles Member auf die Elemente auswirken, die in s
vorhanden sein können.
NumberStyles-Wert | Elemente, die zusätzlich zu Ziffern in s zulässig sind |
---|---|
None | Nur die Ziffern Element. |
AllowDecimalPoint | Die . und Bruchzahlen Elemente. |
AllowExponent | Der parameter s kann auch exponentielle Notation verwenden. Dieses Kennzeichen unterstützt Werte im Formular ZiffernEZiffern; Zusätzliche Flags werden benötigt, um Zeichenfolgen erfolgreich mit Elementen wie positiven oder negativen Zeichen und Dezimalkommasymbolen zu analysieren. |
AllowLeadingWhite | Das ws-Element am Anfang s . |
AllowTrailingWhite | Das ws-Element am Ende s . |
AllowLeadingSign | Das signieren Element am Anfang s . |
AllowTrailingSign | Das signieren Element am Ende s . |
AllowParentheses | Das Zeichen Element in Form von Klammern, die den numerischen Wert einschließen. |
AllowThousands | Das --Element. |
AllowCurrencySymbol | Das $-Element. |
Currency | Alle. Der parameter s kann keine hexadezimale Zahl oder eine Zahl in exponentieller Schreibweise darstellen. |
Float | Das ws-Element am Anfang oder Ende s , Zeichen am Anfang s , und die .-Symbol. Der parameter s kann auch exponentielle Notation verwenden. |
Number | Die ws , sign , ,und . Elemente. |
Any | Alle Formatvorlagen, mit Ausnahme von s , können keine hexadezimale Zahl darstellen. |
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.