Decimal.TryParse 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 równoważną Decimal. Wartość zwracana wskazuje, czy konwersja zakończyła się powodzeniem, czy niepowodzeniem.
Przeciążenia
TryParse(ReadOnlySpan<Byte>, Decimal) |
Próbuje przekonwertować zakres znaków UTF-8 zawierający reprezentację ciągu liczby na jego podpisany odpowiednik dziesiętny. |
TryParse(ReadOnlySpan<Char>, Decimal) |
Konwertuje reprezentację zakresu liczby na równoważną Decimal przy użyciu formatu specyficznego dla kultury. Wartość zwracana wskazuje, czy konwersja zakończyła się powodzeniem, czy niepowodzeniem. |
TryParse(String, Decimal) |
Konwertuje reprezentację ciągu liczby na równoważną Decimal. Wartość zwracana wskazuje, czy konwersja zakończyła się powodzeniem, czy niepowodzeniem. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal) |
Próbuje przeanalizować zakres znaków UTF-8 w wartość. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal) |
Próbuje przeanalizować zakres znaków w wartości. |
TryParse(String, IFormatProvider, Decimal) |
Próbuje przeanalizować ciąg w wartości. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Decimal) |
Próbuje przeanalizować zakres znaków UTF-8 w wartość. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal) |
Konwertuje reprezentację zakresu liczby na jej Decimal odpowiednik przy użyciu określonego stylu i formatu specyficznego dla kultury. Wartość zwracana wskazuje, czy konwersja zakończyła się powodzeniem, czy niepowodzeniem. |
TryParse(String, NumberStyles, IFormatProvider, Decimal) |
Konwertuje reprezentację ciągu liczby na równoważną Decimal przy użyciu określonego stylu i formatu specyficznego dla kultury. Wartość zwracana wskazuje, czy konwersja zakończyła się powodzeniem, czy niepowodzeniem. |
TryParse(ReadOnlySpan<Byte>, Decimal)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Próbuje przekonwertować zakres znaków UTF-8 zawierający reprezentację ciągu liczby na jego podpisany odpowiednik dziesiętny.
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
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Zakres zawierający znaki UTF-8 reprezentujące liczbę do przekonwertowania.
- result
- Decimal
Gdy ta metoda zwraca wartość dziesiętną, zawiera podpisaną wartość dziesiętną równoważną liczbie zawartej w utf8Text
, jeśli konwersja zakończyła się pomyślnie lub zero, jeśli konwersja nie powiodła się. Ten parametr jest przekazywany niezainicjowany; każda wartość pierwotnie podana w wyniku zostanie zastąpiona.
Zwraca
true
, jeśli utf8Text
została pomyślnie przekonwertowana; w przeciwnym razie false
.
Dotyczy
TryParse(ReadOnlySpan<Char>, Decimal)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Konwertuje reprezentację zakresu liczby na równoważną Decimal przy użyciu formatu specyficznego dla kultury. Wartość zwracana wskazuje, czy konwersja zakończyła się powodzeniem, czy niepowodzeniem.
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
Parametry
- s
- ReadOnlySpan<Char>
Zakres zawierający znaki reprezentujące liczbę do przekonwertowania.
- result
- Decimal
Gdy ta metoda zwraca wartość , zawiera liczbę Decimal, która jest równoważna wartości liczbowej zawartej w s
, jeśli konwersja zakończyła się pomyślnie lub zero, jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli parametr s
jest null
lub Empty lub reprezentuje liczbę mniejszą niż dziesiętna.MinValue lub większą niż Decimal.MaxValue. Ten parametr jest przekazywany jako uininitialized; każda wartość pierwotnie podana w result
jest zastępowana.
Zwraca
true
, jeśli s
została pomyślnie przekonwertowana; w przeciwnym razie false
.
Dotyczy
TryParse(String, Decimal)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Konwertuje reprezentację ciągu liczby na równoważną Decimal. Wartość zwracana wskazuje, czy konwersja zakończyła się powodzeniem, czy niepowodzeniem.
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
Parametry
- s
- String
Reprezentacja ciągu liczby do przekonwertowania.
- result
- Decimal
Gdy ta metoda zwraca wartość , zawiera liczbę Decimal, która jest równoważna wartości liczbowej zawartej w s
, jeśli konwersja zakończyła się pomyślnie lub zero, jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli parametr s
jest null
lub Empty, nie jest liczbą w prawidłowym formacie lub reprezentuje liczbę mniejszą niż dziesiętną.MinValue lub większą niż Decimal.MaxValue. Ten parametr jest przekazywany jako uininitialized; każda wartość pierwotnie podana w result
jest zastępowana.
Zwraca
true
, jeśli s
została pomyślnie przekonwertowana; w przeciwnym razie false
.
Przykłady
W poniższym przykładzie użyto metody Decimal.TryParse(String, Decimal), aby przekonwertować reprezentacje ciągów wartości liczbowych na Decimal wartości. Przyjęto założenie, że en-US jest bieżącą kulturą.
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
Uwagi
To przeciążenie różni się od metody Decimal.Parse(String) przez zwrócenie wartości logicznej, która wskazuje, czy operacja analizowania zakończyła się pomyślnie, zamiast zwracać przeanalizowaną wartość liczbową. Eliminuje to konieczność użycia obsługi wyjątków w celu przetestowania FormatException w przypadku, gdy s
jest nieprawidłowa i nie można jej pomyślnie przeanalizować.
Parametr s
zawiera liczbę formularzy:
[ws] [podpis] [cyfry,]cyfry[.fractional-digits][ws]
Elementy w nawiasach kwadratowych ([ i ]) są opcjonalne. W poniższej tabeli opisano każdy element.
Pierwiastek | Opis |
---|---|
ws | Opcjonalne białe znaki. |
podpisywania |
Opcjonalny znak. |
cyfry | Sekwencja cyfr od 0 do 9. |
, | Symbol separatora tysięcy specyficzny dla kultury. |
. | Symbol separatora dziesiętnego specyficznego dla kultury. |
cyfry ułamkowe | Sekwencja cyfr od 0 do 9. |
s
parametrów jest interpretowany przy użyciu stylu NumberStyles.Number. Oznacza to, że odstępy i tysiące separatorów są dozwolone, ale symbole waluty nie są. Aby jawnie zdefiniować elementy (takie jak symbole waluty, separatory tysięcy i odstępy), które mogą być obecne w s
, użyj przeciążenia metody Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal).
Parametr s
jest analizowany przy użyciu informacji formatowania w obiekcie NumberFormatInfo zainicjowanym dla bieżącej kultury systemu. Aby uzyskać więcej informacji, zobacz CurrentInfo. Aby przeanalizować ciąg przy użyciu informacji o formatowaniu innej określonej kultury, użyj przeciążenia metody Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal).
W razie potrzeby wartość s
jest zaokrąglona przy użyciu zaokrąglania do najbliższego.
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 obcięta, do 29 cyfr przy użyciu zaokrąglania do najbliższej.
Jeśli podczas operacji analizy separator napotkany jest w parametrze s
, a odpowiednia waluta lub separatory 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
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Próbuje przeanalizować zakres znaków UTF-8 w wartość.
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
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Zakres znaków UTF-8 do przeanalizowania.
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury na temat utf8Text
.
- result
- Decimal
Po powrocie zawiera wynik pomyślnego analizowania utf8Text
lub niezdefiniowanej wartości w przypadku błędu.
Zwraca
true
, jeśli utf8Text
została pomyślnie przeanalizowana; w przeciwnym razie false
.
Dotyczy
TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Próbuje przeanalizować zakres znaków w wartości.
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
Parametry
- s
- ReadOnlySpan<Char>
Zakres znaków do przeanalizowania.
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury na temat s
.
- result
- Decimal
Gdy ta metoda zwraca wartość , zawiera wynik pomyślnego analizowania s
lub niezdefiniowanej wartości w przypadku błędu.
Zwraca
true
, jeśli s
została pomyślnie przeanalizowana; w przeciwnym razie false
.
Dotyczy
TryParse(String, IFormatProvider, Decimal)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Próbuje przeanalizować ciąg w wartości.
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
Parametry
- s
- String
Ciąg do analizy.
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury na temat s
.
- result
- Decimal
Gdy ta metoda zwraca, zawiera wynik pomyślnego analizowania s
lub niezdefiniowanej wartości w przypadku błędu.
Zwraca
true
, jeśli s
została pomyślnie przeanalizowana; w przeciwnym razie false
.
Dotyczy
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Decimal)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Próbuje przeanalizować zakres znaków UTF-8 w wartość.
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
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Zakres znaków UTF-8 do przeanalizowania.
- style
- NumberStyles
Bitowa kombinacja stylów liczbowych, które mogą być obecne w utf8Text
.
- provider
- IFormatProvider
Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury na temat utf8Text
.
- result
- Decimal
Po powrocie zawiera wynik pomyślnego analizowania utf8Text
lub niezdefiniowanej wartości w przypadku błędu.
Zwraca
true
, jeśli utf8Text
została pomyślnie przeanalizowana; w przeciwnym razie false
.
Dotyczy
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Konwertuje reprezentację zakresu liczby na jej Decimal odpowiednik przy użyciu określonego stylu i formatu specyficznego dla kultury. Wartość zwracana wskazuje, czy konwersja zakończyła się powodzeniem, czy niepowodzeniem.
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
Parametry
- s
- ReadOnlySpan<Char>
Zakres zawierający znaki reprezentujące liczbę do przekonwertowania.
- style
- NumberStyles
Bitowa kombinacja wartości wyliczenia wskazująca dozwolony format s
. Typową wartością do określenia jest Number.
- provider
- IFormatProvider
Obiekt, który dostarcza informacje dotyczące analizy specyficzne dla kultury na temat s
.
- result
- Decimal
Gdy ta metoda zwraca wartość , zawiera liczbę Decimal, która jest równoważna wartości liczbowej zawartej w s
, jeśli konwersja zakończyła się pomyślnie lub zero, jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli parametr s
jest null
lub Empty, nie jest liczbą zgodną z style
lub reprezentuje liczbę mniejszą niż Dziesiętna.MinValue lub większą niż Decimal.MaxValue. Ten parametr jest przekazywany jako uininitialized; każda wartość pierwotnie podana w result
jest zastępowana.
Zwraca
true
, jeśli s
została pomyślnie przekonwertowana; w przeciwnym razie false
.
Dotyczy
TryParse(String, NumberStyles, IFormatProvider, Decimal)
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
- Źródło:
- Decimal.cs
Konwertuje reprezentację ciągu liczby na równoważną Decimal przy użyciu określonego stylu i formatu specyficznego dla kultury. Wartość zwracana wskazuje, czy konwersja zakończyła się powodzeniem, czy niepowodzeniem.
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
Parametry
- s
- String
Reprezentacja ciągu liczby do przekonwertowania.
- style
- NumberStyles
Bitowa kombinacja wartości wyliczenia wskazująca dozwolony format s
. Typową wartością do określenia jest Number.
- provider
- IFormatProvider
Obiekt, który dostarcza informacje dotyczące analizy specyficzne dla kultury na temat s
.
- result
- Decimal
Gdy ta metoda zwraca wartość , zawiera liczbę Decimal, która jest równoważna wartości liczbowej zawartej w s
, jeśli konwersja zakończyła się pomyślnie lub zero, jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli parametr s
jest null
lub Empty, nie jest liczbą zgodną z style
lub reprezentuje liczbę mniejszą niż Dziesiętna.MinValue lub większą niż Decimal.MaxValue. Ten parametr jest przekazywany jako uininitialized; każda wartość pierwotnie podana w result
jest zastępowana.
Zwraca
true
, jeśli s
została pomyślnie przekonwertowana; w przeciwnym razie false
.
Wyjątki
Przykłady
W poniższym przykładzie pokazano użycie metody TryParse(String, NumberStyles, IFormatProvider, Decimal) do analizowania reprezentacji ciągu liczby, która ma określony styl i jest formatowana przy użyciu konwencji określonej kultury.
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'.
Uwagi
To przeciążenie różni się od metody Decimal.Parse(String, NumberStyles, IFormatProvider) przez zwrócenie wartości logicznej, która wskazuje, czy operacja analizowania zakończyła się pomyślnie, zamiast zwracać przeanalizowaną wartość liczbową. Eliminuje to konieczność użycia obsługi wyjątków w celu przetestowania FormatException w przypadku, gdy s
jest nieprawidłowa i nie można jej pomyślnie przeanalizować.
Parametr style
definiuje dozwolony format parametru s
, aby operacja analizy zakończyła się pomyślnie. Musi to być kombinacja flag bitowych z wyliczenia NumberStyles. Następujące NumberStyles członków nie są obsługiwane:
W zależności od wartości stylu parametr s
może zawierać następujące elementy:
[ws] [$] [podpis] [cyfry,]cyfry[.fractional-digits][e[sign]digits][ws]
Elementy w nawiasach kwadratowych ([ i ]) są opcjonalne. W poniższej tabeli opisano każdy element.
Pierwiastek | Opis |
---|---|
ws | Opcjonalne białe znaki. Białe znaki mogą pojawić się na początku s , jeśli style zawiera flagę NumberStyles.AllowLeadingWhite. Może pojawić się na końcu s , jeśli style zawiera flagę NumberStyles.AllowTrailingWhite. |
$ | Symbol waluty specyficznej dla kultury. Jego pozycja w ciągu jest definiowana przez właściwości NumberFormatInfo.CurrencyNegativePattern lub NumberFormatInfo.CurrencyPositivePattern obiektu NumberFormatInfo zwrócone przez metodę IFormatProvider.GetFormat parametru provider . Symbol waluty może pojawić się w s , jeśli style zawiera flagę NumberStyles.AllowCurrencySymbol. |
podpisywania |
Opcjonalny znak. |
cyfry | Sekwencja cyfr od 0 do 9. |
. | Symbol separatora dziesiętnego specyficznego dla kultury. |
cyfry ułamkowe | Sekwencja cyfr od 0 do 9. |
Parametr style
określa dozwolony format parametru s
i może być co najmniej jedną NumberStyles wyliczonych stałych połączonych przy użyciu operacji bitowej OR. Jeśli style
ma wartość null, s
jest interpretowana przy użyciu stylu NumberStyles.Number.
Parametr provider
jest implementacją IFormatProvider, taką jak obiekt NumberFormatInfo lub CultureInfo. Parametr provider
dostarcza informacje specyficzne dla kultury używane w analizowaniu. Jeśli provider
jest 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 obcięta, 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 liczbowe i separatory grup są takie same, operacja analizy zakłada, że separator jest separatorem dziesiętnym, a nie separatorem grup. Aby uzyskać więcej informacji na temat separatorów, zobacz CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatori NumberGroupSeparator.