Decimal.Parse Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Konwertuje reprezentację ciągu liczby na Decimal równoważną.
Przeciążenia
Parse(String) |
Konwertuje reprezentację ciągu liczby na Decimal równoważną. |
Parse(ReadOnlySpan<Byte>, IFormatProvider) |
Analizuje zakres znaków UTF-8 w wartość. |
Parse(ReadOnlySpan<Char>, IFormatProvider) |
Analizuje zakres znaków w wartości. |
Parse(String, NumberStyles) |
Konwertuje reprezentację ciągu liczby w określonym stylu na Decimal jej odpowiednik. |
Parse(String, IFormatProvider) |
Konwertuje reprezentację ciągu liczby na Decimal równoważną przy użyciu określonych informacji o formacie specyficznym dla kultury. |
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider) |
Analizuje zakres znaków UTF-8 w wartość. |
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
Konwertuje reprezentację zakresu liczby na Decimal równoważną przy użyciu określonego stylu i formatu specyficznego dla kultury. |
Parse(String, NumberStyles, IFormatProvider) |
Konwertuje reprezentację ciągu liczby na Decimal równoważną przy użyciu określonego stylu i formatu specyficznego dla kultury. |
Parse(String)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Konwertuje reprezentację ciągu liczby na Decimal równoważną.
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
Parametry
- s
- String
Reprezentacja tekstowa liczby, którą należy przekształcić.
Zwraca
Odpowiednik liczby zawartej w elemencie s
.
Wyjątki
s
to null
.
s
nie jest w poprawnym formacie.
s
reprezentuje liczbę mniejszą niż Decimal.MinValue lub większą niż Decimal.MaxValue.
Przykłady
Poniższy przykład kodu używa Parse(String) metody do analizowania reprezentacji ciągów Decimal wartości.
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'.
Uwagi
Parametr s
zawiera liczbę formularzy:
[ws] [znak] [cyfry,]cyfry[.fractional-digits][ws]
Elementy w nawiasach kwadratowych ([ i ]) są opcjonalne. W tabeli poniżej opisano każdy element.
Element | Opis |
---|---|
Ws | Opcjonalny odstęp. |
sign | Opcjonalny znak. |
Cyfr | Sekwencja cyfr od 0 do 9. |
, | Symbol separatora tysięcy specyficzny dla kultury. |
. | Symbol dziesiętny specyficzny dla kultury. |
cyfry-ułamkowe | Sekwencja cyfr od 0 do 9. |
Parametr s
jest interpretowany przy użyciu NumberStyles.Number stylu. Oznacza to, że biały znak i separatory tysięczne są dozwolone, ale symbole walut nie. Aby jawnie zdefiniować elementy (takie jak symbole waluty, separatory tysięcy i odstępy), które mogą być obecne w s
metodzie , użyj Decimal.Parse(String, NumberStyles) metody lub Decimal.Parse(String, NumberStyles, IFormatProvider) .
Parametr s
jest analizowany przy użyciu informacji o formatowaniu w zainicjowanej dla bieżącej NumberFormatInfo kultury systemu. Aby uzyskać więcej informacji, zobacz CurrentInfo. Aby przeanalizować ciąg przy użyciu informacji o formatowaniu innej kultury, użyj Decimal.Parse(String, IFormatProvider) metody or Decimal.Parse(String, NumberStyles, IFormatProvider) .
W razie potrzeby wartość s
jest zaokrąglona przy użyciu zaokrąglania do najbliższego.
Element ma Decimal 29 cyfr dokładności. Jeśli s
reprezentuje liczbę, która ma więcej niż 29 cyfr, ale ma część ułamkową i znajduje się w zakresie MaxValue i MinValue, liczba jest zaokrąglona, nie obcinana, do 29 cyfr przy użyciu zaokrąglania do najbliższej.
Jeśli podczas operacji analizy separator jest napotkany w parametrze s
, a odpowiednia waluta lub separatory liczb dziesiętne i separatory grup są takie same, operacja analizy zakłada, że separator jest separatorem dziesiętnym, a nie separatorem grupy. Aby uzyskać więcej informacji na temat separatorów, zobacz CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatori NumberGroupSeparator.
Zobacz też
Dotyczy
Parse(ReadOnlySpan<Byte>, IFormatProvider)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Analizuje zakres znaków UTF-8 w wartość.
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
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Zakres znaków UTF-8 do przeanalizowania.
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury dotyczące utf8Text
elementu .
Zwraca
Wynik analizy utf8Text
.
Implementuje
Dotyczy
Parse(ReadOnlySpan<Char>, IFormatProvider)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Analizuje zakres znaków w wartości.
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
Parametry
- s
- ReadOnlySpan<Char>
Zakres znaków do przeanalizowania.
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury dotyczące s
elementu .
Zwraca
Wynik analizy s
.
Implementuje
Dotyczy
Parse(String, NumberStyles)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Konwertuje reprezentację ciągu liczby w określonym stylu na Decimal jej odpowiednik.
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
Parametry
- s
- String
Reprezentacja tekstowa liczby, którą należy przekształcić.
- style
- NumberStyles
Bitowa kombinacja NumberStyles wartości wskazująca elementy stylu, które mogą być obecne w obiekcie s
. Typową wartością do określenia jest Number.
Zwraca
Liczba równoważna Decimal liczbie zawartej w s
określonej przez style
.
Wyjątki
s
to null
.
s
nie jest w poprawnym formacie.
s
reprezentuje liczbę mniejszą niż Decimal.MinValue lub większą niż Decimal.MaxValue
Przykłady
Poniższy przykład kodu używa Parse(String, NumberStyles) metody do analizowania reprezentacji ciągów Decimal wartości przy użyciu kultury en-US.
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.
Uwagi
Parametr style
definiuje elementy stylu (takie jak separatory tysięcy, białe znaki i symbole waluty), które są dozwolone w parametrze s
operacji analizowania, aby operacja analizy powiodła się. Musi być kombinacją flag bitowych z wyliczenia NumberStyles . Następujące NumberStyles elementy członkowskie nie są obsługiwane:
W zależności od wartości parametr może style
s
zawierać następujące elementy:
[ws] [$] [znak] [cyfry,]cyfry[.fractional-digits][e[znak]cyfry][ws]
Elementy w nawiasach kwadratowych ([ i ]) są opcjonalne. W tabeli poniżej opisano każdy element.
Element | Opis |
---|---|
Ws | Opcjonalny odstęp. Biały odstęp może pojawić się na początku s , jeśli style zawiera flagę NumberStyles.AllowLeadingWhite i może pojawić się na końcu s , jeśli style zawiera flagę NumberStyles.AllowTrailingWhite . |
$ | Symbol waluty specyficzny dla kultury. Jego pozycja w ciągu jest definiowana przez NumberFormatInfo.CurrencyNegativePattern właściwości i NumberFormatInfo.CurrencyPositivePattern bieżącej kultury. Symbol waluty bieżącej kultury może być wyświetlany, s jeśli style zawiera flagę NumberStyles.AllowCurrencySymbol . |
sign | Opcjonalny znak. Znak może pojawić się na początku s , jeśli style zawiera flagę NumberStyles.AllowLeadingSign i może pojawić się na końcu s , jeśli style zawiera flagę NumberStyles.AllowTrailingSign . Nawiasy mogą służyć do wskazywania wartości ujemnej, s jeśli style zawiera flagę NumberStyles.AllowParentheses . |
Cyfr | Sekwencja cyfr od 0 do 9. |
, | Symbol separatora tysięcy specyficzny dla kultury. Separator tysięcy bieżącej kultury może pojawić się, s jeśli style zawiera flagę NumberStyles.AllowThousands . |
. | Symbol dziesiętny specyficzny dla kultury. Symbol punktu dziesiętnego bieżącej kultury może pojawić się, s jeśli style zawiera flagę NumberStyles.AllowDecimalPoint . |
cyfry-ułamkowe | Sekwencja cyfr od 0 do 9. Cyfry ułamkowe mogą być wyświetlane tylko wtedy s , gdy style zawiera flagę NumberStyles.AllowDecimalPoint . |
E | Znak „e” lub „E”, który wskazuje, że wartość jest reprezentowana w zapisie wykładniczym. Parametr s może reprezentować liczbę w notacji wykładniczej, jeśli style zawiera flagę NumberStyles.AllowExponent . |
Uwaga
Wszelkie znaki zakończenia NUL (U+0000) w obiekcie s
są ignorowane przez operację analizowania, niezależnie od wartości argumentu style
.
Ciąg z cyframi (odpowiadający None stylowi) zawsze analizuje się pomyślnie, jeśli znajduje się on w zakresie Decimal typu. Pozostałe NumberStyles elementy członkowskie kontrolujące elementy, które mogą być, ale nie muszą być obecne w ciągu wejściowym. Poniższa tabela wskazuje, jak poszczególne NumberStyles elementy członkowskie wpływają na elementy, które mogą być obecne w elemecie s
.
Wartość wyliczenia NumberStyles | Dodatkowe (poza cyframi) elementy dozwolone w parametrze s |
---|---|
None | Tylko element cyfry . |
AllowDecimalPoint | Elementy . i ułamkowe . |
AllowExponent | Parametr s może również używać notacji wykładniczej. Ta flaga obsługuje wartości w cyfrachE formularza; Potrzebne są dodatkowe flagi do pomyślnego analizowania ciągów z elementami, takimi jak znaki dodatnie lub ujemne i symbole punktów dziesiętnych. |
AllowLeadingWhite | Element ws na początku s . |
AllowTrailingWhite | Element ws na końcu s elementu . |
AllowLeadingSign | Element znaku na początku s elementu . |
AllowTrailingSign | Element znaku na końcu elementu s . |
AllowParentheses | Element znaku w postaci nawiasów otaczających wartość liczbową. |
AllowThousands | Element , . |
AllowCurrencySymbol | Element $ . |
Currency | Wszystkie. Parametr s nie może reprezentować liczby szesnastkowej ani liczby w notacji wykładniczej. |
Float | Element ws na początku lub na końcu s , znak na początku s , i . symbol. Parametr s może również używać notacji wykładniczej. |
Number | ws Elementy , sign i , . . |
Any | Wszystkie style, z wyjątkiem s nie mogą reprezentować liczby szesnastkowej. |
Parametr s
jest analizowany przy użyciu informacji o formatowaniu w obiekcie zainicjowanym NumberFormatInfo dla bieżącej kultury systemu. Aby uzyskać więcej informacji, zobacz CurrentInfo.
Element ma Decimal 29 cyfr dokładności. Jeśli s
reprezentuje liczbę, która ma więcej niż 29 cyfr, ale ma część ułamkową i znajduje się w zakresie MaxValue i MinValue, liczba jest zaokrąglona, nie obcinana, do 29 cyfr przy użyciu zaokrąglania do najbliższej.
Jeśli separator napotkany w parametrze s
podczas operacji analizy, styles
zawiera NumberStyles.AllowThousands wartości i NumberStyles.AllowDecimalPoint , a odpowiednia waluta lub separatory liczb dziesiętne i separatory grup są takie same, operacja analizy zakłada, że separator jest separatorem dziesiętnym, a nie separatorem grupy. Aby uzyskać więcej informacji na temat separatorów, zobacz CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatori NumberGroupSeparator.
Zobacz też
Dotyczy
Parse(String, IFormatProvider)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Konwertuje reprezentację ciągu liczby na Decimal równoważną przy użyciu określonych informacji o formacie specyficznym dla kultury.
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
Parametry
- s
- String
Reprezentacja tekstowa liczby, którą należy przekształcić.
- provider
- IFormatProvider
Element IFormatProvider , który dostarcza informacje dotyczące analizy specyficzne dla kultury dotyczące s
elementu .
Zwraca
Liczba równoważna Decimal liczbie zawartej w s
określonej przez provider
.
Implementuje
Wyjątki
s
to null
.
s
nie jest poprawnym formatem.
s
reprezentuje liczbę mniejszą niż Decimal.MinValue lub większą niż Decimal.MaxValue.
Przykłady
W poniższym przykładzie występuje program obsługi zdarzeń kliknięcia przycisku w formularzu sieci Web. Używa tablicy zwróconej przez HttpRequest.UserLanguages właściwość w celu określenia ustawień regionalnych użytkownika. Następnie tworzy wystąpienie obiektu odpowiadającego CultureInfo tym ustawieniam regionalnym. NumberFormatInfo Obiekt, który należy do tego CultureInfo obiektu, jest następnie przekazywany do Parse(String, IFormatProvider) metody w celu przekonwertowania danych wejściowych użytkownika na Decimal wartość.
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
Uwagi
To przeciążenie Parse(String, IFormatProvider) metody jest często używane do konwertowania tekstu, który można sformatować na różne sposoby na Decimal wartość. Może na przykład służyć do skonwertowania tekstu wprowadzanego przez użytkownika w polu tekstowym HTML na wartość liczbową.
Parametr s
zawiera liczbę formularzy:
[ws] [znak] [cyfry,]cyfry[.fractional-digits][ws]
Elementy w nawiasach kwadratowych ([ i ]) są opcjonalne. W tabeli poniżej opisano każdy element.
Element | Opis |
---|---|
Ws | Opcjonalny odstęp. |
sign | Opcjonalny znak. |
Cyfr | Sekwencja cyfr od 0 do 9. |
, | Symbol separatora tysięcy specyficzny dla kultury. |
. | Symbol dziesiętny specyficzny dla kultury. |
cyfry-ułamkowe | Sekwencja cyfr od 0 do 9. |
Parametr s
jest interpretowany przy użyciu NumberStyles.Number stylu. Oznacza to, że biały znak i separatory tysięczne są dozwolone, ale symbole walut nie. Aby jawnie zdefiniować elementy (takie jak symbole waluty, separatory tysięcy i odstępy), które mogą być obecne w s
metodzie Decimal.Parse(String, NumberStyles, IFormatProvider) , użyj metody .
Parametr provider
jest implementacją IFormatProvider , taką jak NumberFormatInfo obiekt lub CultureInfo . Parametr provider
dostarcza informacje specyficzne dla kultury używane w analizowaniu. Jeśli provider
jest to null
, używana jest bieżąca kultura wątku.
Obiekt Decimal ma 29 cyfr dokładności. Jeśli s
reprezentuje liczbę, która ma więcej niż 29 cyfr, ale ma część ułamkową i znajduje się w zakresie MaxValue i MinValue, liczba jest zaokrąglona, nie obcinana, do 29 cyfr przy użyciu zaokrąglania do najbliższej.
Jeśli separator napotkany w parametrze s
podczas operacji analizy, a odpowiednia waluta lub separatory liczb dziesiętne i separatory grup są takie same, operacja analizy zakłada, że separator jest separatorem dziesiętnym, a nie separatorem grupy. Aby uzyskać więcej informacji na temat separatorów, zobacz CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatori NumberGroupSeparator.
Zobacz też
Dotyczy
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Analizuje zakres znaków UTF-8 w wartość.
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
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Zakres znaków UTF-8 do przeanalizowania.
- style
- NumberStyles
Bitowa kombinacja stylów liczbowych, które mogą być obecne w obiekcie utf8Text
.
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury dotyczące utf8Text
elementu .
Zwraca
Wynik analizy utf8Text
.
Implementuje
Dotyczy
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Konwertuje reprezentację zakresu liczby na Decimal równoważną przy użyciu określonego stylu i formatu specyficznego dla kultury.
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
Parametry
- s
- ReadOnlySpan<Char>
Zakres zawierający znaki reprezentujące liczbę do przekonwertowania.
- style
- NumberStyles
Bitowa kombinacja NumberStyles wartości wskazująca elementy stylu, które mogą być obecne w obiekcie s
. Typową wartością do określenia jest Number.
- provider
- IFormatProvider
IFormatProvider Obiekt, który dostarcza informacje specyficzne dla kultury dotyczące formatu s
.
Zwraca
Liczba równoważna Decimal liczbie zawartej w s
określonym przez style
element i provider
.
Implementuje
Dotyczy
Parse(String, NumberStyles, IFormatProvider)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Konwertuje reprezentację ciągu liczby na Decimal równoważną przy użyciu określonego stylu i formatu specyficznego dla kultury.
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
Parametry
- s
- String
Reprezentacja tekstowa liczby, którą należy przekształcić.
- style
- NumberStyles
Bitowa kombinacja NumberStyles wartości wskazująca elementy stylu, które mogą być obecne w obiekcie s
. Typową wartością do określenia jest Number.
- provider
- IFormatProvider
IFormatProvider Obiekt, który dostarcza informacje specyficzne dla kultury dotyczące formatu s
.
Zwraca
Liczba równoważna Decimal liczbie zawartej w s
określonym przez style
element i provider
.
Implementuje
Wyjątki
s
nie jest w poprawnym formacie.
s
reprezentuje liczbę mniejszą niż Decimal.MinValue lub większą niż Decimal.MaxValue.
s
to null
.
Przykłady
W poniższym przykładzie użyto różnych parametrów style
i provider
do analizowania reprezentacji ciągów Decimal wartości.
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.
Uwagi
Parametr style
definiuje dozwolony format parametru s
dla operacji analizy, która zakończy się powodzeniem. Musi być kombinacją flag bitowych z wyliczenia NumberStyles . Następujące NumberStyles elementy członkowskie nie są obsługiwane:
W zależności od wartości parametr może style
s
zawierać następujące elementy:
[ws] [$] [znak] [cyfry,]cyfry[.fractional-digits][e[znak]cyfry][ws]
Elementy w nawiasach kwadratowych ([ i ]) są opcjonalne. W tabeli poniżej opisano każdy element.
Element | Opis |
---|---|
$ | Symbol waluty specyficzny dla kultury. Jego pozycja w ciągu jest definiowana przez CurrencyNegativePattern właściwości NumberFormatInfo i CurrencyPositivePattern obiektu zwróconego przez GetFormat metodę parametru provider . Symbol waluty może pojawić się, s jeśli style zawiera flagę NumberStyles.AllowCurrencySymbol . |
Ws | Opcjonalny odstęp. Biały odstęp może pojawić się na początku s , jeśli style zawiera flagę NumberStyles.AllowLeadingWhite i może pojawić się na końcu s , jeśli style zawiera flagę NumberStyles.AllowTrailingWhite . |
sign | Opcjonalny znak. Znak może pojawić się na początku s , jeśli style zawiera flagę NumberStyles.AllowLeadingSign i może pojawić się na końcu s , jeśli style zawiera flagę NumberStyles.AllowTrailingSign . Nawiasy mogą służyć do wskazywania wartości ujemnej, s jeśli style zawiera flagę NumberStyles.AllowParentheses . |
Cyfr | Sekwencja cyfr od 0 do 9. |
, | Symbol separatora tysięcy specyficzny dla kultury. Separator tysięcy kultury zdefiniowanej przez provider program może pojawić się, s jeśli style zawiera flagę NumberStyles.AllowThousands . |
. | Symbol dziesiętny specyficzny dla kultury. Symbol punktu dziesiętnego kultury zdefiniowanej przez provider program może pojawić się, s jeśli style zawiera flagę NumberStyles.AllowDecimalPoint . |
cyfry-ułamkowe | Sekwencja cyfr od 0 do 9. Cyfry ułamkowe mogą być wyświetlane tylko wtedy s , gdy style zawiera flagę NumberStyles.AllowDecimalPoint . |
E | Znak „e” lub „E”, który wskazuje, że wartość jest reprezentowana w zapisie wykładniczym. Parametr s może reprezentować liczbę w notacji wykładniczej, jeśli style zawiera flagę NumberStyles.AllowExponent . |
Uwaga
Wszelkie znaki zakończenia NUL (U+0000) w obiekcie s
są ignorowane przez operację analizowania, niezależnie od wartości argumentu style
.
Ciąg z cyframi (odpowiadający None stylowi) zawsze analizuje się pomyślnie, jeśli znajduje się on w zakresie Decimal typu. Pozostałe NumberStyles elementy członkowskie kontrolujące elementy, które mogą być, ale nie muszą być obecne w ciągu wejściowym. Poniższa tabela wskazuje, jak poszczególne NumberStyles elementy członkowskie wpływają na elementy, które mogą być obecne w elemecie s
.
Wartość wyliczenia NumberStyles | Dodatkowe (poza cyframi) elementy dozwolone w parametrze s |
---|---|
None | Tylko element cyfry . |
AllowDecimalPoint | Elementy . i ułamkowe . |
AllowExponent | Parametr s może również używać notacji wykładniczej. Ta flaga obsługuje wartości w cyfrachE formularza; Potrzebne są dodatkowe flagi do pomyślnego analizowania ciągów z elementami, takimi jak znaki dodatnie lub ujemne i symbole punktów dziesiętnych. |
AllowLeadingWhite | Element ws na początku s . |
AllowTrailingWhite | Element ws na końcu s elementu . |
AllowLeadingSign | Element znaku na początku s elementu . |
AllowTrailingSign | Element znaku na końcu elementu s . |
AllowParentheses | Element znaku w postaci nawiasów otaczających wartość liczbową. |
AllowThousands | Element , . |
AllowCurrencySymbol | Element $ . |
Currency | Wszystkie. Parametr s nie może reprezentować liczby szesnastkowej ani liczby w notacji wykładniczej. |
Float | Element ws na początku lub na końcu s znaku na początku s i symbolu . Parametr s może również używać notacji wykładniczej. |
Number | ws Elementy , sign , , i . |
Any | Wszystkie style, z wyjątkiem s nie mogą reprezentować liczby szesnastkowej. |
Parametr provider
jest implementacją IFormatProvider , taką jak NumberFormatInfo obiekt lub CultureInfo . Parametr provider
dostarcza informacje specyficzne dla kultury używane w analizowaniu. Jeśli provider
jest to null
, używana jest bieżąca kultura wątku.
Obiekt Decimal ma 29 cyfr dokładności. Jeśli s
reprezentuje liczbę, która ma więcej niż 29 cyfr, ale ma część ułamkową i znajduje się w zakresie MaxValue i MinValue, liczba jest zaokrąglona, nie obcinana, do 29 cyfr przy użyciu zaokrąglania do najbliższej.
Jeśli separator napotkany w parametrze s
podczas operacji analizy, a odpowiednia waluta lub separatory liczb dziesiętne i separatory grup są takie same, operacja analizy zakłada, że separator jest separatorem dziesiętnym, a nie separatorem grupy. Aby uzyskać więcej informacji na temat separatorów, zobacz CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatori NumberGroupSeparator.
Zobacz też
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla