Udostępnij za pośrednictwem


Decimal.TryParse Metoda

Definicja

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 slub 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 stylelub 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 stylelub 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

style nie jest wartością NumberStyles.

-lub-

style jest wartością AllowHexSpecifier.

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.

Zobacz też

Dotyczy