Decimal.Parse 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ězcové vyjádření čísla na jeho Decimal ekvivalent.
Přetížení
Parse(String) |
Převede řetězcovou reprezentaci čísla na jeho Decimal ekvivalent. |
Parse(ReadOnlySpan<Byte>, IFormatProvider) |
Parsuje rozsah znaků UTF-8 na hodnotu. |
Parse(ReadOnlySpan<Char>, IFormatProvider) |
Parsuje rozsah znaků na hodnotu. |
Parse(String, NumberStyles) |
Převede řetězcovou reprezentaci čísla v zadaném stylu na jeho Decimal ekvivalent. |
Parse(String, IFormatProvider) |
Převede řetězcovou reprezentaci čísla na jeho Decimal ekvivalent pomocí zadané informace o formátu specifické pro jazykovou verzi. |
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider) |
Parsuje rozsah znaků UTF-8 na hodnotu. |
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
Převede reprezentaci rozsahu čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi. |
Parse(String, NumberStyles, IFormatProvider) |
Převede řetězcovou reprezentaci čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi. |
Parse(String)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Převede řetězcovou reprezentaci čísla na jeho Decimal ekvivalent.
public:
static System::Decimal Parse(System::String ^ s);
public static decimal Parse (string s);
static member Parse : string -> decimal
Public Shared Function Parse (s As String) As Decimal
Parametry
- s
- String
Řetězcová reprezentace čísla, které má být převedeno.
Návraty
Ekvivalent čísla obsaženého v s
souboru .
Výjimky
s
je null
.
s
není ve správném formátu.
s
představuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue.
Příklady
Následující příklad kódu používá metodu Parse(String) k analýze řetězcových Decimal reprezentací hodnot.
string value;
decimal number;
// Parse an integer with thousands separators.
value = "16,523,421";
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '16,523,421' converted to 16523421.
// Parse a floating point value with thousands separators
value = "25,162.1378";
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '25,162.1378' converted to 25162.1378.
// Parse a floating point number with US currency symbol.
value = "$16,321,421.75";
try
{
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
// Unable to parse '$16,321,421.75'.
// Parse a number in exponential notation
value = "1.62345e-02";
try
{
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
// Unable to parse '1.62345e-02'.
// Parse an integer with thousands separators.
let value = "16,523,421"
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
// Displays:
// '16,523,421' converted to 16523421.
// Parse a floating point value with thousands separators
let value = "25,162.1378"
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
// Displays:
// '25,162.1378' converted to 25162.1378.
// Parse a floating point number with US currency symbol.
let value = "$16,321,421.75"
try
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Displays:
// Unable to parse '$16,321,421.75'.
// Parse a number in exponential notation
let value = "1.62345e-02"
try
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Displays:
// Unable to parse '1.62345e-02'.
Dim value As String
Dim number As Decimal
' Parse an integer with thousands separators.
value = "16,523,421"
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '16,523,421' converted to 16523421.
' Parse a floating point value with thousands separators
value = "25,162.1378"
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '25,162.1378' converted to 25162.1378.
' Parse a floating point number with US currency symbol.
value = "$16,321,421.75"
Try
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
' Unable to parse '$16,321,421.75'.
' Parse a number in exponential notation
value = "1.62345e-02"
Try
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
' Unable to parse '1.62345e-02'.
Poznámky
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
nástroji , použijte metodu Decimal.Parse(String, NumberStyles)Decimal.Parse(String, NumberStyles, IFormatProvider) nebo .
Parametr s
se analyzuje pomocí informací o formátování v NumberFormatInfo inicializované pro aktuální systémovou jazykovou verzi. Další informace naleznete v tématu CurrentInfo. Pokud chcete analyzovat řetězec pomocí informací o formátování jiné jazykové verze, použijte metodu Decimal.Parse(String, IFormatProvider) nebo Decimal.Parse(String, NumberStyles, IFormatProvider) .
V případě potřeby se hodnota s
zaokrouhlí pomocí zaokrouhlení na nejbližší.
A 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 během operace analýzy v s
parametru nalezen oddělovač a příslušné oddělovače desetinných míst měny nebo čísla a oddělovače skupin jsou stejné, operace parse předpokládá, že oddělovač je oddělovač desetinných míst, nikoli oddělovač skupin. Další informace o oddělovači najdete v tématech CurrencyDecimalSeparator, CurrencyGroupSeparatorNumberDecimalSeparator, a NumberGroupSeparator.
Viz také
Platí pro
Parse(ReadOnlySpan<Byte>, IFormatProvider)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Parsuje rozsah znaků UTF-8 na hodnotu.
public:
static System::Decimal Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<System::Decimal>::Parse;
public static decimal Parse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> decimal
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As Decimal
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Rozsah znaků UTF-8, které se mají analyzovat.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi .utf8Text
Návraty
Výsledek analýzy utf8Text
.
Implementuje
Platí pro
Parse(ReadOnlySpan<Char>, IFormatProvider)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Parsuje rozsah znaků na hodnotu.
public:
static System::Decimal Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<System::Decimal>::Parse;
public static decimal Parse (ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> decimal
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As Decimal
Parametry
- s
- ReadOnlySpan<Char>
Rozsah znaků, které se mají analyzovat.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi .s
Návraty
Výsledek analýzy s
.
Implementuje
Platí pro
Parse(String, NumberStyles)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Převede řetězcovou reprezentaci čísla v zadaném stylu na jeho Decimal ekvivalent.
public:
static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style);
public static decimal Parse (string s, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> decimal
Public Shared Function Parse (s As String, style As NumberStyles) As Decimal
Parametry
- s
- String
Řetězcová reprezentace čísla, které má být převedeno.
- style
- NumberStyles
Bitová kombinace NumberStyles hodnot, která označuje prvky stylu, které mohou být přítomné v nástroji s
. Typická hodnota, která se má zadat, je Number.
Návraty
Číslo Decimal odpovídající číslu obsaženému v s
zadaném parametru style
.
Výjimky
s
je null
.
s
není ve správném formátu.
s
představuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue
Příklady
Následující příklad kódu používá metodu Parse(String, NumberStyles) k analýze řetězcových Decimal reprezentací hodnot pomocí jazykové verze en-US.
string value;
decimal number;
NumberStyles style;
// Parse string with a floating point value using NumberStyles.None.
value = "8694.12";
style = NumberStyles.None;
try
{
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
// Unable to parse '8694.12'.
// Parse string with a floating point value and allow decimal point.
style = NumberStyles.AllowDecimalPoint;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '8694.12' converted to 8694.12.
// Parse string with negative value in parentheses
value = "(1,789.34)";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands |
NumberStyles.AllowParentheses;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '(1,789.34)' converted to -1789.34.
// Parse string using Number style
value = " -17,623.49 ";
style = NumberStyles.Number;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// ' -17,623.49 ' converted to -17623.49.
// Parse string with a floating point value using NumberStyles.None.
let value = "8694.12"
let style = NumberStyles.None
try
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Displays:
// Unable to parse '8694.12'.
// Parse string with a floating point value and allow decimal point.
let style = NumberStyles.AllowDecimalPoint
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
// '8694.12' converted to 8694.12.
// Parse string with negative value in parentheses
let value = "(1,789.34)"
let style =
NumberStyles.AllowDecimalPoint |||
NumberStyles.AllowThousands |||
NumberStyles.AllowParentheses
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
// '(1,789.34)' converted to -1789.34.
// Parse string using Number style
let value = " -17,623.49 "
let style = NumberStyles.Number
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
// ' -17,623.49 ' converted to -17623.49.
Dim value As String
Dim number As Decimal
Dim style As NumberStyles
' Parse string with a floating point value using NumberStyles.None.
value = "8694.12"
style = NumberStyles.None
Try
number = Decimal.Parse(value, style)
Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
' Unable to parse '8694.12'.
' Parse string with a floating point value and allow decimal point.
style = NumberStyles.AllowDecimalPoint
number = Decimal.Parse(value, style)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '8694.12' converted to 8694.12.
' Parse string with negative value in parentheses
value = "(1,789.34)"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands Or _
NumberStyles.AllowParentheses
number = Decimal.Parse(value, style)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '(1,789.34)' converted to -1789.34.
' Parse string using Number style
value = " -17,623.49 "
style = NumberStyles.Number
number = Decimal.Parse(value, style)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' ' -17,623.49 ' converted to -17623.49.
Poznámky
Parametr style
definuje prvky stylu (například oddělovače tisíců, prázdné znaky a symboly měny), které jsou v parametru s
povolené, aby operace parsování 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ě style
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. Prázdné místo se může zobrazit na začátku, s pokud style obsahuje NumberStyles.AllowLeadingWhite příznak, a může se zobrazit na konci, s pokud style obsahuje NumberStyles.AllowTrailingWhite příznak. |
$ | Symbol měny pro konkrétní jazykovou verzi. Jeho pozice v řetězci je definována vlastnostmi NumberFormatInfo.CurrencyNegativePattern a NumberFormatInfo.CurrencyPositivePattern aktuální jazykové verze. Symbol měny aktuální jazykové verze se může zobrazit v s , pokud style obsahuje NumberStyles.AllowCurrencySymbol příznak. |
sign | Nepovinný znak. Znaménko se může zobrazit na začátku, pokud příznak obsahujeNumberStyles.AllowLeadingSign, a může se zobrazit na konci, s pokud style příznak obsahujeNumberStyles.AllowTrailingSign.style s Závorky lze v s použít k označení záporné hodnoty, pokud style obsahuje NumberStyles.AllowParentheses příznak. |
Číslic | Řada číslic od 0 do 9. |
, | Symbol oddělovače tisíců, specifický pro jazykovou verzi. Oddělovač tisíců aktuální jazykové verze se může zobrazit v s , pokud style obsahuje NumberStyles.AllowThousands příznak. |
. | Symbol desetinné čárky specifický pro jazykovou verzi. Symbol desetinné čárky aktuální jazykové verze se může zobrazit v s , pokud style obsahuje NumberStyles.AllowDecimalPoint příznak. |
desetinné-číslice | Řada číslic od 0 do 9. Desetinné číslice se můžou zobrazit pouze v s případě, že style obsahuje NumberStyles.AllowDecimalPoint příznak. |
E | Znak "e" nebo "E", který označuje, že hodnota je vyjádřena v exponenciální notaci. Parametr s může představovat číslo v exponenciálním zápisuNumberStyles.AllowExponent, pokud style obsahuje příznak. |
Poznámka
Operace analýzy ignoruje všechny ukončující ZNAKY NUL (U+0000) bez s
ohledu na hodnotu argumentu style
.
Řetězec pouze s číslicemi (který odpovídá None stylu) se vždy úspěšně analyzuje, pokud je v rozsahu Decimal typu. Zbývající NumberStyles členové ovládací prvky, které mohou být, ale nejsou nutné, aby byly přítomny ve vstupním řetězci. Následující tabulka uvádí, jak jednotlivé NumberStyles členy ovlivňují prvky, které mohou být přítomny v nástroji s
.
Hodnota NumberStyles | Prvky, které jsou povoleny v s, kromě číslic |
---|---|
None | Pouze prvek digits . |
AllowDecimalPoint | Elementy . a desetinné číslice . |
AllowExponent | Parametr s může také použít exponenciální notaci. Tento příznak podporuje hodnoty ve formulářových číslicíchEčíslice; K úspěšné analýze řetězců s prvky, jako jsou kladné nebo záporné znaménka a symboly desetinné čárky, jsou potřeba další příznaky. |
AllowLeadingWhite | Element ws na začátku souboru s . |
AllowTrailingWhite | Element ws na konci souboru s . |
AllowLeadingSign | Element sign na začátku objektu s . |
AllowTrailingSign | Element sign na konci objektu s . |
AllowParentheses | Element sign ve formě závorek ohraničující číselnou hodnotu. |
AllowThousands | Element , |
AllowCurrencySymbol | Element $ . |
Currency | Všechny. Parametr s nemůže představovat šestnáctkové číslo nebo číslo v exponenciálním zápisu. |
Float | Element ws na začátku nebo na konci , s znaménko na začátku s a . symbol. Parametr s může také použít exponenciální notaci. |
Number | Elementy ws , sign a . , |
Any | Všechny styly s výjimkou s nemohou představovat šestnáctkové číslo. |
Parametr s
se analyzuje pomocí informací o formátování v objektu NumberFormatInfo inicializovaném pro aktuální systémovou jazykovou verzi. Další informace naleznete v tématu CurrentInfo.
A 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 zjištěn oddělovač, styles
zahrnuje NumberStyles.AllowThousands hodnoty a NumberStyles.AllowDecimalPoint a příslušné oddělovače desetinných míst měny nebo čísla a skupiny jsou stejné, operace parse předpokládá, že oddělovač je oddělovač desetinných míst, nikoli oddělovač skupin. Další informace o oddělovači najdete v tématech CurrencyDecimalSeparator, CurrencyGroupSeparatorNumberDecimalSeparator, a NumberGroupSeparator.
Viz také
Platí pro
Parse(String, IFormatProvider)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Převede řetězcovou reprezentaci čísla na jeho Decimal ekvivalent pomocí zadané informace o formátu specifické pro jazykovou verzi.
public:
static System::Decimal Parse(System::String ^ s, IFormatProvider ^ provider);
public:
static System::Decimal Parse(System::String ^ s, IFormatProvider ^ provider) = IParsable<System::Decimal>::Parse;
public static decimal Parse (string s, IFormatProvider provider);
public static decimal Parse (string s, IFormatProvider? provider);
static member Parse : string * IFormatProvider -> decimal
Public Shared Function Parse (s As String, provider As IFormatProvider) As Decimal
Parametry
- s
- String
Řetězcová reprezentace čísla, které má být převedeno.
- provider
- IFormatProvider
Poskytuje IFormatProvider informace o parsování specifické pro s
jazykovou verzi .
Návraty
Číslo Decimal odpovídající číslu obsaženému v s
zadaném parametru provider
.
Implementuje
Výjimky
s
je null
.
s
nemá správný formát.
s
představuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue.
Příklady
V následujícím příkladu je obslužná rutina události kliknutí na tlačítko webového formuláře. Používá pole vrácené HttpRequest.UserLanguages vlastností k určení národního prostředí uživatele. Potom vytvoří instanci objektu CultureInfo , který odpovídá danému národnímu prostředí. Objekt NumberFormatInfo , který patří danému objektu, CultureInfo se pak předá Parse(String, IFormatProvider) metodě, která převede vstup uživatele na Decimal hodnotu.
protected void OkToDecimal_Click(object sender, EventArgs e)
{
string locale;
decimal number;
CultureInfo culture;
// Return if string is empty
if (String.IsNullOrEmpty(this.inputNumber.Text))
return;
// Get locale of web request to determine possible format of number
if (Request.UserLanguages.Length == 0)
return;
locale = Request.UserLanguages[0];
if (String.IsNullOrEmpty(locale))
return;
// Instantiate CultureInfo object for the user's locale
culture = new CultureInfo(locale);
// Convert user input from a string to a number
try
{
number = Decimal.Parse(this.inputNumber.Text, culture.NumberFormat);
}
catch (FormatException)
{
return;
}
catch (Exception)
{
return;
}
// Output number to label on web form
this.outputNumber.Text = "Number is " + number.ToString();
}
Protected Sub OkToDecimal_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OkToDecimal.Click
Dim locale As String
Dim culture As CultureInfo
Dim number As Decimal
' Return if string is empty
If String.IsNullOrEmpty(Me.inputNumber.Text) Then Exit Sub
' Get locale of web request to determine possible format of number
If Request.UserLanguages.Length = 0 Then Exit Sub
locale = Request.UserLanguages(0)
If String.IsNullOrEmpty(locale) Then Exit Sub
' Instantiate CultureInfo object for the user's locale
culture = New CultureInfo(locale)
' Convert user input from a string to a number
Try
number = Decimal.Parse(Me.inputNumber.Text, culture.NumberFormat)
Catch ex As FormatException
Exit Sub
Catch ex As Exception
Exit Sub
End Try
' Output number to label on web form
Me.outputNumber.Text = "Number is " & number.ToString()
End Sub
Poznámky
Toto přetížení Parse(String, IFormatProvider) metody se běžně používá k převodu textu, který lze formátovat různými způsoby na Decimal hodnotu. Například jej lze použít k převodu textu zadaného uživatelem do textového pole HTML na číselnou hodnotu.
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
nástroji , použijte metodu Decimal.Parse(String, NumberStyles, IFormatProvider) .
Parametr provider
je implementace, například objekt nebo NumberFormatInfoCultureInfo.IFormatProvider 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
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Parsuje rozsah znaků UTF-8 na hodnotu.
public static decimal Parse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Number, Optional provider As IFormatProvider = Nothing) As Decimal
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 jazykovou verzi .utf8Text
Návraty
Výsledek analýzy utf8Text
.
Implementuje
Platí pro
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
- 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.
public static decimal Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider? provider = default);
public static decimal Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Number, Optional provider As IFormatProvider = Nothing) As Decimal
Parametry
- s
- ReadOnlySpan<Char>
Rozsah obsahující znaky představující číslo, které se má převést.
- style
- NumberStyles
Bitová kombinace NumberStyles hodnot, která označuje prvky stylu, které mohou být přítomné v nástroji s
. Typická hodnota, která se má zadat, je Number.
- provider
- IFormatProvider
Objekt IFormatProvider , který poskytuje informace specifické pro jazykovou verzi s
formátu .
Návraty
Číslo Decimal odpovídající číslu obsaženému v s
souboru, jak je uvedeno style
v a provider
.
Implementuje
Platí pro
Parse(String, NumberStyles, IFormatProvider)
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
- Zdroj:
- Decimal.cs
Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi.
public:
static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<System::Decimal>::Parse;
public static decimal Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
public static decimal Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As Decimal
Parametry
- s
- String
Řetězcová reprezentace čísla, které má být převedeno.
- style
- NumberStyles
Bitová kombinace NumberStyles hodnot, která označuje prvky stylu, které mohou být přítomné v nástroji s
. Typická hodnota, která se má zadat, je Number.
- provider
- IFormatProvider
Objekt IFormatProvider , který poskytuje informace specifické pro jazykovou verzi s
formátu .
Návraty
Číslo Decimal odpovídající číslu obsaženému v s
, jak je určeno pomocí style
a provider
.
Implementuje
Výjimky
s
není ve správném formátu.
s
představuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue.
s
je null
.
Příklady
Následující příklad používá různé style
parametry a provider
k analýze řetězcových Decimal reprezentací hodnot.
string value;
decimal number;
NumberStyles style;
CultureInfo provider;
// Parse string using " " as the thousands separator
// and "," as the decimal separator for fr-FR culture.
value = "892 694,12";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands;
provider = new CultureInfo("fr-FR");
number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '892 694,12' converted to 892694.12.
try
{
number = Decimal.Parse(value, style, CultureInfo.InvariantCulture);
Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
// Unable to parse '892 694,12'.
// Parse string using "$" as the currency symbol for en-GB and
// en-US cultures.
value = "$6,032.51";
style = NumberStyles.Number | NumberStyles.AllowCurrencySymbol;
provider = new CultureInfo("en-GB");
try
{
number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
// Unable to parse '$6,032.51'.
provider = new CultureInfo("en-US");
number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '$6,032.51' converted to 6032.51.
// Parse string using " " as the thousands separator
// and "," as the decimal separator for fr-FR culture.
let value = "892 694,12"
let style = NumberStyles.AllowDecimalPoint ||| NumberStyles.AllowThousands
let provider = CultureInfo "fr-FR"
let number = Decimal.Parse(value, style, provider)
printfn $"'{value}' converted to {number}."
// Displays:
// '892 694,12' converted to 892694.12.
try
let number = Decimal.Parse(value, style, CultureInfo.InvariantCulture)
printfn $"'{value}' converted to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Displays:
// Unable to parse '892 694,12'.
// Parse string using "$" as the currency symbol for en-GB and
// en-US cultures.
let value = "$6,032.51"
let style = NumberStyles.Number ||| NumberStyles.AllowCurrencySymbol
let provider = CultureInfo "en-GB"
try
let number = Decimal.Parse(value, style, provider)
printfn $"'{value}' converted to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Displays:
// Unable to parse '$6,032.51'.
let provider = CultureInfo "en-US"
let number = Decimal.Parse(value, style, provider)
printfn $"'{value}' converted to {number}."
// Displays:
// '$6,032.51' converted to 6032.51.
Dim value As String
Dim number As Decimal
Dim style As NumberStyles
Dim provider As CultureInfo
' Parse string using " " as the thousands separator
' and "," as the decimal separator for fr-FR culture.
value = "892 694,12"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands
provider = New CultureInfo("fr-FR")
number = Decimal.Parse(value, style, provider)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '892 694,12' converted to 892694.12.
Try
number = Decimal.Parse(value, style, CultureInfo.InvariantCulture)
Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
' Unable to parse '892 694,12'.
' Parse string using "$" as the currency symbol for en-GB and
' en-US cultures.
value = "$6,032.51"
style = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol
provider = New CultureInfo("en-GB")
Try
number = Decimal.Parse(value, style, provider)
Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
' Unable to parse '$6,032.51'.
provider = New CultureInfo("en-US")
number = Decimal.Parse(value, style, provider)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '$6,032.51' converted to 6032.51.
Poznámky
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 členy nejsou podporovány:
V závislosti na hodnotě style
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 |
---|---|
$ | Symbol měny pro konkrétní jazykovou verzi. Jeho pozice v řetězci je definována vlastnostmi CurrencyNegativePattern a CurrencyPositivePattern objektu NumberFormatInfo vráceného metodou GetFormat parametru provider . Symbol měny se může zobrazit v s , pokud style obsahuje NumberStyles.AllowCurrencySymbol příznak . |
Ws | Volitelné prázdné místo. Pokud příznak obsahujeNumberStyles.AllowLeadingWhite, může se na začátku s style zobrazit prázdné znaky, a pokud style příznak obsahujeNumberStyles.AllowTrailingWhite, může se zobrazit na koncis . |
sign | Nepovinný znak. Znaménko se může zobrazit na začátku, s pokud style obsahuje NumberStyles.AllowLeadingSign příznak, a může se zobrazit na konci, s pokud style obsahuje NumberStyles.AllowTrailingSign příznak. Závorky lze v s použít k označení záporné hodnoty, pokud style obsahuje NumberStyles.AllowParentheses příznak. |
Číslic | Řada číslic od 0 do 9. |
, | Symbol oddělovače tisíců, specifický pro jazykovou verzi. Oddělovač tisíců jazykové verze definované nástrojem provider se může zobrazit v s , pokud style obsahuje NumberStyles.AllowThousands příznak . |
. | Symbol desetinné čárky specifický pro jazykovou verzi. Symbol desetinné čárky jazykové verze definované nástrojem provider se může zobrazit v s , pokud style obsahuje NumberStyles.AllowDecimalPoint příznak . |
desetinné-číslice | Řada číslic od 0 do 9. Desetinné číslice se můžou zobrazit jen v s případě, že style NumberStyles.AllowDecimalPoint obsahuje příznak . |
E | Znak "e" nebo "E", který označuje, že hodnota je vyjádřena v exponenciální notaci. Parametr s může představovat číslo v exponenciálním zápisuNumberStyles.AllowExponent, pokud style obsahuje příznak . |
Poznámka
Operace analýzy ignoruje všechny ukončující znaky s
NUL (U+0000) bez ohledu na hodnotu argumentu style
.
Řetězec pouze s číslicemi (který odpovídá None stylu) se vždy úspěšně analyzuje, pokud je v rozsahu Decimal typu. Zbývající NumberStyles členové řídí prvky, které mohou být, ale nejsou nutné, aby byly přítomny ve vstupním řetězci. Následující tabulka uvádí, jak jednotlivé NumberStyles členy ovlivňují prvky, které mohou být přítomny v s
nástroji .
Hodnota NumberStyles | Prvky, které jsou povoleny v s, kromě číslic |
---|---|
None | Pouze prvek digits . |
AllowDecimalPoint | Prvky . a desetinné číslice . |
AllowExponent | Parametr s může také používat exponenciální zápis. Tento příznak podporuje hodnoty ve formuláři čísliceEčíslice; K úspěšné analýze řetězců s prvky, jako jsou kladné nebo záporné znaménka a symboly desetinné čárky, jsou potřeba další příznaky. |
AllowLeadingWhite | Element ws na začátku .s |
AllowTrailingWhite | Element ws na konci .s |
AllowLeadingSign | Element sign na začátku .s |
AllowTrailingSign | Element sign na konci .s |
AllowParentheses | Element sign ve formě závorek ohraničující číselnou hodnotu. |
AllowThousands | Element , |
AllowCurrencySymbol | Element .$ |
Currency | Všechny. Parametr s nemůže představovat šestnáctkové číslo ani číslo v exponenciálním zápisu. |
Float | Element ws na začátku nebo na konci s , znaménko na začátku s a symbol . Parametr s může také používat exponenciální zápis. |
Number | Elementy ws , sign , , a . |
Any | Všechny styly s výjimkou, že s nemohou představovat šestnáctkové číslo. |
Parametr provider
je implementace, například objekt nebo NumberFormatInfoCultureInfo .IFormatProvider 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, je číslo zaokrouhleno, nikoli zkráceno, na 29 číslic pomocí zaokrouhlení na nejbližší.
Pokud je v parametru s
během operace analýzy zjištěn oddělovač a příslušné oddělovače desetinných míst měny nebo čísla jsou stejné a oddělovače skupin, 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
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