Decimal.TryParse Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Převede řetězcovou reprezentaci čísla na jeho Decimal ekvivalent. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.
Přetížení
TryParse(ReadOnlySpan<Byte>, Decimal) |
Pokusí se převést znakový rozsah UTF-8 obsahující řetězcové vyjádření čísla na jeho desítkový ekvivalent se znaménkem. |
TryParse(ReadOnlySpan<Char>, Decimal) |
Převede reprezentaci rozsahu čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli. |
TryParse(String, Decimal) |
Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal) |
Pokusí se parsovat rozsah znaků UTF-8 na hodnotu. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal) |
Pokusí se parsovat rozsah znaků na hodnotu. |
TryParse(String, IFormatProvider, Decimal) |
Pokusí se parsovat řetězec na hodnotu. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Decimal) |
Pokusí se parsovat rozsah znaků UTF-8 na hodnotu. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal) |
Převede reprezentaci rozsahu čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli. |
TryParse(String, NumberStyles, IFormatProvider, Decimal) |
Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli. |
TryParse(ReadOnlySpan<Byte>, Decimal)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Pokusí se převést znakový rozsah UTF-8 obsahující řetězcové vyjádření čísla na jeho desítkový ekvivalent se znaménkem.
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>
Rozsah obsahující znaky UTF-8 představující číslo, které chcete převést.
- result
- Decimal
Když tato metoda vrátí, obsahuje desetinnou hodnotu se sadou se sadou, která odpovídá číslu obsaženému v případě úspěšného převodu, nebo nula, utf8Text
pokud se převod nezdařil. Tento parametr je předán neinicializován; jakákoli hodnota původně zadaná ve výsledku bude přepsána.
Návraty
true
pokud utf8Text
byl úspěšně převeden, jinak hodnota false
.
Platí pro
TryParse(ReadOnlySpan<Char>, Decimal)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Převede reprezentaci rozsahu čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.
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>
Rozsah obsahující znaky představující číslo, které se má převést.
- result
- Decimal
Když tato metoda vrátí hodnotu , obsahuje Decimal číslo, které je ekvivalentní číselné hodnotě obsažené v s
, pokud převod byl úspěšný, nebo nulu, pokud se převod nezdařil. Převod selže, pokud s
parametr je null
nebo Empty, není číslo ve formátu kompatibilním s style
, nebo představuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue. Tento parametr je předán uininitialized; jakákoli hodnota původně zadaná v result
je přepsána.
Návraty
true
pokud s
byl úspěšně převeden, jinak hodnota false
.
Platí pro
TryParse(String, Decimal)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.
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
Řetězcová reprezentace čísla, které má být převedeno.
- result
- Decimal
Když tato metoda vrátí hodnotu , obsahuje Decimal číslo, které je ekvivalentní číselné hodnotě obsažené v s
, pokud převod byl úspěšný, nebo nulu, pokud se převod nezdařil. Převod selže, pokud s
parametr je null
nebo Empty, není číslo v platném formátu nebo představuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue. Tento parametr je předán uininitialized; jakákoli hodnota původně zadaná v result
je přepsána.
Návraty
true
pokud s
byl úspěšně převeden, jinak hodnota false
.
Příklady
Následující příklad používá metodu Decimal.TryParse(String, Decimal) k převodu řetězcových reprezentací číselných hodnot na Decimal hodnoty. Předpokládá, že en-US je aktuální jazyková verze.
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
Poznámky
Toto přetížení se liší od Decimal.Parse(String) metody vrácením logické hodnoty, která označuje, zda byla operace parsování úspěšná místo vrácení analyzované číselné hodnoty. Eliminuje potřebu použití zpracování výjimek k testování objektu FormatException v případě, že s
je neplatná a nelze ji úspěšně analyzovat.
Parametr s
obsahuje číslo formuláře:
[ws] [sign] [digits,]digits[.fractional-digits][ws]
Prvky v hranatých závorkách ([ a ]) jsou volitelné. Následující tabulka popisuje jednotlivé prvky.
Element | Popis |
---|---|
Ws | Volitelné prázdné místo. |
sign | Nepovinný znak. |
Číslic | Řada číslic od 0 do 9. |
, | Symbol oddělovače tisíců, specifický pro jazykovou verzi. |
. | Symbol desetinné čárky specifický pro jazykovou verzi. |
desetinné-číslice | Řada číslic od 0 do 9. |
Parametr s
se interpretuje pomocí NumberStyles.Number stylu . To znamená, že mezery a oddělovače tisíců jsou povoleny, ale symboly měny nikoli. Pokud chcete explicitně definovat prvky (například symboly měny, oddělovače tisíců a prázdné znaky), které se můžou vyskytovat v s
objektu Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) , použijte přetížení metody .
Parametr s
se parsuje pomocí informací o formátování v objektu NumberFormatInfo inicializovaném pro aktuální jazykovou verzi systému. Další informace naleznete v tématu CurrentInfo. Chcete-li analyzovat řetězec pomocí informací o formátování některé jiné jazykové verze, použijte Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) přetížení metody.
V případě potřeby se hodnota zaokrouhlí s
pomocí zaokrouhlení na nejbližší.
Objekt Decimal má přesnost 29 číslic. Pokud s
představuje číslo, které má více než 29 číslic, ale má zlomkovou část a je v rozsahu MaxValue a MinValue, je číslo zaokrouhleno, nikoli zkráceno, na 29 číslic pomocí zaokrouhlení na nejbližší.
Pokud je během operace analýzy v s
parametru zjištěn oddělovač a příslušné oddělovače desetinných míst měny nebo čísla a oddělovače desetinných míst jsou stejné, operace parsování předpokládá, že oddělovač je oddělovač desetinných míst, nikoli oddělovač skupin. Další informace o oddělovacích najdete v tématu CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatora NumberGroupSeparator.
Viz také
Platí pro
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Pokusí se parsovat rozsah znaků UTF-8 na hodnotu.
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>
Rozsah znaků UTF-8, které se mají analyzovat.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro utf8Text
jazykovou verzi.
- result
- Decimal
Při vrácení obsahuje výsledek úspěšné analýzy utf8Text
nebo nedefinovanou hodnotu při selhání.
Návraty
true
pokud utf8Text
byl úspěšně parsován, jinak hodnota false
.
Platí pro
TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Pokusí se parsovat rozsah znaků na hodnotu.
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>
Rozsah znaků, které se mají analyzovat.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro s
jazykovou verzi.
- result
- Decimal
Když tato metoda vrátí, obsahuje výsledek úspěšné analýzy s
nebo nedefinovanou hodnotu při selhání.
Návraty
true
pokud s
byl úspěšně parsován, jinak hodnota false
.
Platí pro
TryParse(String, IFormatProvider, Decimal)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Pokusí se parsovat řetězec na hodnotu.
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
Řetězec, který se má analyzovat.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro s
jazykovou verzi.
- result
- Decimal
Když tato metoda vrátí, obsahuje výsledek úspěšné analýzy s
nebo nedefinovanou hodnotu při selhání.
Návraty
true
pokud s
byl úspěšně parsován, jinak hodnota false
.
Platí pro
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Decimal)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Pokusí se parsovat rozsah znaků UTF-8 na hodnotu.
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>
Rozsah znaků UTF-8, které se mají analyzovat.
- style
- NumberStyles
Bitové kombinace stylů čísel, které se můžou vyskytovat v nástroji utf8Text
.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro utf8Text
jazykovou verzi.
- result
- Decimal
Při vrácení obsahuje výsledek úspěšné analýzy utf8Text
nebo nedefinovanou hodnotu při selhání.
Návraty
true
pokud utf8Text
byl úspěšně parsován, v opačném případě . false
Platí pro
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Převede reprezentaci rozsahu čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.
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>
Rozsah obsahující znaky představující číslo, které se má převést.
- style
- NumberStyles
Bitové kombinace hodnot výčtu, která označuje povolený formát souboru s
. Typická hodnota, která se má zadat, je Number.
- provider
- IFormatProvider
Objekt, který poskytuje informace o analýze specifické pro jazykovou verzi .s
- result
- Decimal
Když tato metoda vrátí, obsahuje Decimal číslo, které je ekvivalentní číselné hodnotě obsažené v s
, pokud převod byl úspěšný, nebo nula, pokud převod selhal. Převod selže, pokud s
parametr je null
nebo Empty, není číslo ve formátu kompatibilním s style
, nebo představuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue. Tento parametr je předán uininitialized; jakákoli hodnota původně zadaná v result
se přepíše.
Návraty
true
pokud s
byl převod úspěšně, v opačném případě false
.
Platí pro
TryParse(String, NumberStyles, IFormatProvider, Decimal)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Převede řetězcovou reprezentaci čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi. Vrácená hodnota označuje, zda byl převod úspěšný, či nikoli.
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
Řetězcová reprezentace čísla, které má být převedeno.
- style
- NumberStyles
Bitové kombinace hodnot výčtu, která označuje povolený formát souboru s
. Typická hodnota, která se má zadat, je Number.
- provider
- IFormatProvider
Objekt, který poskytuje informace o analýze specifické pro jazykovou verzi .s
- result
- Decimal
Když tato metoda vrátí, obsahuje Decimal číslo, které je ekvivalentní číselné hodnotě obsažené v s
, pokud převod byl úspěšný, nebo nula, pokud převod selhal. Převod selže, pokud s
parametr je null
nebo Empty, není číslo ve formátu kompatibilním s style
, nebo představuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue. Tento parametr je předán uininitialized; jakákoli hodnota původně zadaná v result
se přepíše.
Návraty
true
pokud s
byl převod úspěšně, v opačném případě false
.
Výjimky
Příklady
Následující příklad ukazuje použití TryParse(String, NumberStyles, IFormatProvider, Decimal) metody k parsování řetězcové reprezentace čísla, který má určitý styl a je formátován pomocí konvencí konkrétní jazykové verze.
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'.
Poznámky
Toto přetížení se liší od Decimal.Parse(String, NumberStyles, IFormatProvider) metody vrácením logické hodnoty, která označuje, zda operace parse proběhla úspěšně, místo vrácení analyzované číselné hodnoty. Eliminuje potřebu použít zpracování výjimek k testování pro FormatException v případě, že s
je neplatná a nelze ji úspěšně analyzovat.
Parametr style
definuje povolený formát parametru s
, aby operace analýzy byla úspěšná. Musí se jednat o kombinaci bitových příznaků z výčtu NumberStyles . Následující NumberStyles členové nejsou podporováni:
V závislosti na hodnotě stylu s
může parametr obsahovat následující prvky:
[ws] [$] [sign] [digits,]digits[.fractional-digits][e[sign]digits][ws]
Prvky v hranatých závorkách ([ a ]) jsou volitelné. Následující tabulka popisuje jednotlivé prvky.
Element | Popis |
---|---|
Ws | Volitelné prázdné místo. Pokud příznak obsahujeNumberStyles.AllowLeadingWhite, může se na začátku s style zobrazit prázdné znaky. Pokud příznak obsahujeNumberStyles.AllowTrailingWhite, může se zobrazit na konci.s style |
$ | Symbol měny pro konkrétní jazykovou verzi. Jeho pozice v řetězci je definována vlastnostmi NumberFormatInfo.CurrencyNegativePattern nebo NumberFormatInfo.CurrencyPositivePattern objektu NumberFormatInfo vráceným metodou IFormatProvider.GetFormat parametru provider . Symbol měny se může zobrazit v s , pokud style obsahuje NumberStyles.AllowCurrencySymbol příznak. |
sign | Nepovinný znak. |
Číslic | Řada číslic od 0 do 9. |
. | Symbol desetinné čárky specifický pro jazykovou verzi. |
desetinné-číslice | Řada číslic od 0 do 9. |
Parametr style
určuje povolený formát parametru s
a může to být jedna nebo více NumberStyles výčtových konstant zkombinovaných pomocí bitové operace OR. Pokud style
je hodnota null, s
interpretuje se NumberStyles.Number pomocí stylu.
Parametr provider
je IFormatProvider implementace, jako NumberFormatInfo je objekt nebo CultureInfo . Parametr provider
poskytuje informace specifické pro jazykovou verzi, které se používají při analýze. Pokud provider
je null
, použije se aktuální jazyková verze vlákna.
Objekt Decimal má přesnost 29 číslic. Pokud s
představuje číslo, které má více než 29 číslic, ale má zlomkovou část a je v rozsahu MaxValue a MinValue, bude číslo zaokrouhleno, nikoli zkráceno, na 29 číslic pomocí zaokrouhlení na nejbližší.
Pokud je v parametru s
během operace analýzy nalezen oddělovač a příslušné oddělovače desetinných míst měny nebo čísla jsou stejné, operace parse předpokládá, že oddělovač je oddělovačem desetinných míst, nikoli oddělovačem skupin. Další informace o oddělovači najdete v tématech CurrencyDecimalSeparator, CurrencyGroupSeparatorNumberDecimalSeparator, a NumberGroupSeparator.
Viz také
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro