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 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 s
metodzie , 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 style
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
.
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 s
metodzie , 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 s
programie , 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 utf8Text
elementu .
- 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 s
elementu .
- result
- Decimal
Gdy ta metoda zostanie zwrócona, zawiera wynik pomyślnego analizowania s
wartoś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 s
elementu .
- 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 utf8Text
elementu .
- result
- Decimal
Po powrocie utf8Text
zawiera wynik pomyślnego analizowania 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. 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 s
elemencie , 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 style
lub 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
true
jeś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 s
elemencie , 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 style
lub 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
true
jeśli s
pomyślnie przekonwertowano; w przeciwnym razie . false
Wyjątki
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 null
wartość , 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
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