Decimal.TryParse Metoda

Definicja

Konwertuje reprezentację ciągu liczby na jej Decimal odpowiednik. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

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 Decimal równoważną przy użyciu określonego stylu i formatu specyficznego dla kultury. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

TryParse(String, Decimal)

Konwertuje reprezentację ciągu liczby na Decimal równoważną. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

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ść.

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 Decimal równoważną przy użyciu określonego stylu i formatu specyficznego dla kultury. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

TryParse(String, NumberStyles, IFormatProvider, Decimal)

Konwertuje reprezentację ciągu liczby na Decimal równoważną przy użyciu określonego stylu i formatu specyficznego dla kultury. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

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 zwróci wartość dziesiętną, zawiera podpisaną wartość dziesiętną równoważną liczbie zawartej w utf8Text konwersji, jeśli konwersja zakończyła się pomyślnie lub zero, jeśli konwersja nie powiodła się. Ten parametr jest przekazywany jako niezainicjowany; każda wartość pierwotnie dostarczona w wyniku zostanie zastąpiona.

Zwraca

true jeśli utf8Text pomyślnie została 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 Decimal równoważną przy użyciu określonego stylu i formatu specyficznego dla kultury. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

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 zwróci wartość, zawiera Decimal liczbę równoważną wartości liczbowej zawartej w smetodzie , 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 s parametr ma null wartość lub Empty, nie jest liczbą w formacie zgodnym z parametrem stylelub reprezentuje liczbę mniejszą niż Decimal.MinValue lub większą niż Decimal.MaxValue. Ten parametr jest przekazywany jako uininitialized; każda wartość pierwotnie dostarczona w pliku result jest zastępowana.

Zwraca

true jeśli s pomyślnie została 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 Decimal równoważną. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

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 tekstowa liczby, którą należy przekształcić.

result
Decimal

Gdy ta metoda zwróci wartość, zawiera Decimal liczbę równoważną wartości liczbowej zawartej w smetodzie , 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 s parametr ma null wartość lub Empty, nie jest liczbą w prawidłowym formacie lub reprezentuje liczbę mniejszą niż Decimal.MinValue lub większą niż Decimal.MaxValue. Ten parametr jest przekazywany jako uininitialized; każda wartość pierwotnie dostarczona w pliku result jest zastępowana.

Zwraca

true jeśli s pomyślnie została przekonwertowana; w przeciwnym razie false.

Przykłady

W poniższym przykładzie Decimal.TryParse(String, Decimal) użyto metody , aby przekonwertować reprezentacje ciągów wartości liczbowych na Decimal wartości. Zakłada się, ż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 Decimal.Parse(String) metody, zwracając wartość logiczną wskazującą, czy operacja analizy zakończyła się pomyślnie, zamiast zwracać przeanalizowaną wartość liczbową. Eliminuje to konieczność użycia obsługi wyjątków do testowania dla FormatException zdarzenia, które s jest nieprawidłowe i nie można go pomyślnie przeanalizować.

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 sprogramie , użyj Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) przeciążenia metody.

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. Aby przeanalizować ciąg przy użyciu informacji o formatowaniu innej określonej kultury, użyj Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) przeciążenia metody.

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

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 dotyczące utf8Textelementu .

result
Decimal

Po powrocie zawiera wynik pomyślnego analizowania utf8Text lub niezdefiniowanej wartości po awarii.

Zwraca

true jeśli utf8Text został pomyślnie przeanalizowany; 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 dotyczące selementu .

result
Decimal

Gdy ta metoda zostanie zwrócona, zawiera wynik pomyślnego analizowania swartości lub niezdefiniowanej wartości w przypadku niepowodzenia.

Zwraca

true jeśli s został pomyślnie przeanalizowany; 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ść.

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 dotyczące selementu .

result
Decimal

Gdy ta metoda zostanie zwrócona, zawiera wynik pomyślnego analizowania s lub niezdefiniowanej wartości po awarii.

Zwraca

true jeśli s został pomyślnie przeanalizowany; 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ści.

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 obiekcie utf8Text.

provider
IFormatProvider

Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury dotyczące utf8Textelementu .

result
Decimal

Po powrocie utf8Text zawiera wynik pomyślnego analizowania lub niezdefiniowanej wartości w przypadku błędu.

Zwraca

truejeś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. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

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 konwersji.

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 specyficznej dla kultury.s

result
Decimal

Gdy ta metoda zwraca wartość , zawiera Decimal liczbę, która jest równoważna wartości liczbowej zawartej w selemencie , jeśli konwersja powiodła się lub zero, jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli s parametr ma null wartość lub Empty, nie jest liczbą w formacie zgodnym z parametrem stylelub reprezentuje liczbę mniejszą niż Decimal.MinValue lub większą niż Decimal.MaxValue. Ten parametr jest przekazywany zainicjalizowany; każda wartość podana pierwotnie w pliku result jest zastępowana.

Zwraca

truejeśli s pomyślnie przekonwertowano; 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 jej Decimal odpowiednik przy użyciu określonego stylu i formatu specyficznego dla kultury. Zwracana wartość wskazuje, czy konwersja powiodła się czy nie.

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 tekstowa liczby, którą należy przekształcić.

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 specyficznej dla kultury.s

result
Decimal

Gdy ta metoda zwraca wartość , zawiera Decimal liczbę, która jest równoważna wartości liczbowej zawartej w selemencie , jeśli konwersja powiodła się lub zero, jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli s parametr ma null wartość lub Empty, nie jest liczbą w formacie zgodnym z parametrem stylelub reprezentuje liczbę mniejszą niż Decimal.MinValue lub większą niż Decimal.MaxValue. Ten parametr jest przekazywany zainicjalizowany; każda wartość podana pierwotnie w pliku result jest zastępowana.

Zwraca

truejeśli s pomyślnie przekonwertowano; 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 TryParse(String, NumberStyles, IFormatProvider, Decimal) metody 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 Decimal.Parse(String, NumberStyles, IFormatProvider) metody, zwracając wartość logiczną, która wskazuje, czy operacja analizy powiodła się zamiast zwracać przeanalizowaną wartość liczbową. Eliminuje konieczność użycia obsługi wyjątków w celu przetestowania elementu FormatException w przypadku nieprawidłowego s i nie można go pomyślnie przeanalizować.

Parametr style definiuje dozwolony format parametru s dla operacji analizowania, aby operacja zakończyła się pomyślnie. Musi to być kombinacja flag bitowych z NumberStyles wyliczenia. Następujące NumberStyles elementy członkowskie nie są obsługiwane:

W zależności od wartości stylu s parametr może zawierać następujące elementy:

[ws] [$] [podpis] [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ł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 specyficzny dla kultury. Jego pozycja w ciągu jest definiowana przez NumberFormatInfo.CurrencyNegativePattern właściwości NumberFormatInfo lub NumberFormatInfo.CurrencyPositivePattern obiektu zwróconego przez IFormatProvider.GetFormat metodę parametru provider . Symbol waluty może pojawić się, s jeśli style zawiera flagę NumberStyles.AllowCurrencySymbol .
sign Opcjonalny znak.
Cyfr Sekwencja cyfr od 0 do 9.
. Symbol dziesiętny specyficzny 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 wyliczoną stałą połączoną przy użyciu bitowej operacji OR. Jeśli style parametr ma wartość null, s jest interpretowany przy użyciu NumberStyles.Number stylu.

Parametr provider jest implementacją, IFormatProvider taką jak NumberFormatInfo obiekt lub CultureInfo . Parametr provider dostarcza informacje specyficzne dla kultury używane podczas analizowania. Jeśli provider parametr ma nullwartość , używana jest bieżąca kultura wątku.

Obiekt Decimal ma 29 cyfr precyzji. Jeśli s reprezentuje liczbę, która ma więcej niż 29 cyfr, ale ma część ułamkową i mieści się w zakresie MaxValue i MinValue, liczba jest zaokrąglona, nie obcinana, do 29 cyfr przy użyciu zaokrąglania do najbliższego.

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 grupy. Aby uzyskać więcej informacji na temat separatorów, zobacz CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatori NumberGroupSeparator.

Zobacz też

Dotyczy