Decimal.Parse Metoda

Definice

Převede řetězcové vyjádření čísla na jeho ekvivalent Decimal.Converts the string representation of a number to its Decimal equivalent.

Přetížení

Parse(String, NumberStyles, IFormatProvider)

Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi.Converts the string representation of a number to its Decimal equivalent using the specified style and culture-specific format.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi.Converts the span representation of a number to its Decimal equivalent using the specified style and culture-specific format.

Parse(String, IFormatProvider)

Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent pomocí zadaných informací o formátu specifické jazykové verze.Converts the string representation of a number to its Decimal equivalent using the specified culture-specific format information.

Parse(String, NumberStyles)

Převede řetězcové vyjádření čísla v zadaném stylu na jeho ekvivalent Decimal.Converts the string representation of a number in a specified style to its Decimal equivalent.

Parse(String)

Převede řetězcové vyjádření čísla na jeho ekvivalent Decimal.Converts the string representation of a number to its Decimal equivalent.

Parse(String, NumberStyles, IFormatProvider)

Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi.Converts the string representation of a number to its Decimal equivalent using the specified style and culture-specific format.

public:
 static System::Decimal Parse(System::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.The string representation of the number to convert.

style
NumberStyles

Bitová kombinace hodnot NumberStyles, která určuje prvky stylu, které mohou být přítomny v s.A bitwise combination of NumberStyles values that indicates the style elements that can be present in s. Typická hodnota, která se má zadat, je Number.A typical value to specify is Number.

provider
IFormatProvider

Objekt IFormatProvider, který poskytuje informace specifické pro jazykovou verzi o formátu s.An IFormatProvider object that supplies culture-specific information about the format of s.

Návraty

Číslo Decimal odpovídající číslu obsaženému v s určeném style a provider.The Decimal number equivalent to the number contained in s as specified by style and provider.

Výjimky

s nemá správný formát.s is not in the correct format.

s představuje číslo menší než MinValue nebo větší než MaxValue.s represents a number less than MinValue or greater than MaxValue.

s je null.s is null.

style není NumberStyles hodnota.style is not a NumberStyles value.

-nebo--or- hodnota AllowHexSpecifier style.style is the AllowHexSpecifier value.

Příklady

V následujícím příkladu je použita řada style a provider parametrů k analýze řetězcové reprezentace Decimal hodnot.The following example uses a variety of style and provider parameters to parse the string representations of Decimal values.

string value;
decimal number;
NumberStyles style;
CultureInfo provider;

// Parse string using "." as the thousands separator 
// and " " as the decimal separator. 
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.
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. 
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 proběhla úspěšně.The style parameter defines the allowable format of the s parameter for the parse operation to succeed. Musí se jednat o kombinaci bitových příznaků z výčtu NumberStyles.It must be a combination of bit flags from the NumberStyles enumeration. Následující členové NumberStyles nejsou podporováni:The following NumberStyles members are not supported:

V závislosti na hodnotě style``s parametr může obsahovat následující prvky:Depending on the value of style, the s parameter may include the following elements:

specifikace [$] osobě [číslice,] číslice [. zlomkové číslice] [e [Sign] číslice] [ws][ws][$][sign][digits,]digits[.fractional-digits][e[sign]digits][ws]

Prvky v hranatých závorkách ([a]) jsou volitelné.Elements in square brackets ([ and ]) are optional. Následující tabulka popisuje jednotlivé prvky.The following table describes each element.

PrvekElement PopisDescription
$ Symbol měny pro konkrétní jazykovou verzi.A culture-specific currency symbol. Jeho pozice v řetězci je definována CurrencyNegativePattern a CurrencyPositivePattern vlastností objektu NumberFormatInfo vráceného metodou GetFormat parametru provider.Its position in the string is defined by the CurrencyNegativePattern and CurrencyPositivePattern properties of the NumberFormatInfo object returned by the GetFormat method of the provider parameter. Symbol měny se může zobrazit v s, pokud style obsahuje příznak NumberStyles.AllowCurrencySymbol.The currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
specifikacews Volitelné prázdné místo.Optional white space. Na začátku s se může zobrazit prázdný znak, pokud style obsahuje příznak NumberStyles.AllowLeadingWhite a může se objevit na konci s Pokud style obsahuje příznak NumberStyles.AllowTrailingWhite.White space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
signsign Nepovinný znak.An optional sign. Znaménko se může zobrazit na začátku s, pokud style obsahuje příznak NumberStyles.AllowLeadingSign a může se objevit na konci s Pokud style obsahuje příznak NumberStyles.AllowTrailingSign.The sign can appear at the beginning of s if style includes the NumberStyles.AllowLeadingSign flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingSign flag. Závorky lze použít v s k označení záporné hodnoty, pokud style obsahuje příznak NumberStyles.AllowParentheses.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
znakdigits Řada číslic od 0 do 9.A sequence of digits ranging from 0 to 9.
,, Symbol oddělovače tisíců, specifický pro jazykovou verzi.A culture-specific thousands separator symbol. Oddělovač tisíců jazykové verze definované pomocí provider se může objevit v s Pokud style obsahuje příznak NumberStyles.AllowThousands.The thousands separator of the culture defined by provider can appear in s if style includes the NumberStyles.AllowThousands flag.
.. Symbol desetinné čárky specifický pro jazykovou verzi.A culture-specific decimal point symbol. Symbol desetinné čárky jazykové verze definovaný provider se může objevit v s, pokud style obsahuje příznak NumberStyles.AllowDecimalPoint.The decimal point symbol of the culture defined by provider can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
zlomkové číslicefractional-digits Řada číslic od 0 do 9.A sequence of digits ranging from 0 to 9. Zlomkové číslice se mohou v s zobrazit pouze v případě, že style obsahuje příznak NumberStyles.AllowDecimalPoint.Fractional digits can appear in s only if style includes the NumberStyles.AllowDecimalPoint flag.
cerebrálníe Znak "e" nebo "E", který označuje, že hodnota je vyjádřena v exponenciální notaci.The 'e' or 'E' character, which indicates that the value is represented in exponential notation. Parametr s může představovat číslo v exponenciální notaci, pokud style obsahuje příznak NumberStyles.AllowExponent.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.

Poznámka

Všechny ukončující znaky NUL (U + 0000) ve s jsou ignorovány operací analýzy bez ohledu na hodnotu argumentu style.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Řetězec s pouze číslicemi (který odpovídá stylu None) se vždy analyzuje úspěšně.A string with digits only (which corresponds to the None style) always parses successfully. Zbývající prvky ovládacího prvku NumberStyles členy, které mohou být ale ve vstupním řetězci nemusejí být přítomny.The remaining NumberStyles members control elements that may be but are not required to be present in the input string. Následující tabulka uvádí, jak jednotlivé členy NumberStyles ovlivňují prvky, které mohou být přítomny v s.The following table indicates how individual NumberStyles members affect the elements that may be present in s.

Hodnota NumberStylesNumberStyles value Prvky, které jsou povoleny v s, kromě číslicElements permitted in s in addition to digits
None Pouze element číslice .The digits element only.
AllowDecimalPoint Rozhraní .The . a prvky zlomkové číslice .and fractional-digits elements.
AllowExponent Parametr s může také používat exponenciální zápis.The s parameter can also use exponential notation. Tento příznak podporuje hodnoty ve formátu číslice**E. k úspěšné analýze řetězců s prvky, jako jsou kladné nebo záporné znaménka a symboly desetinných míst, jsou potřeba další příznaky.This flag supports values in the form digitsEdigits; additional flags are needed to successfully parse strings with elements such as positive or negative signs and decimal point symbols.
AllowLeadingWhite Element WS na začátku s.The ws element at the beginning of s.
AllowTrailingWhite Element WS na konci s.The ws element at the end of s.
AllowLeadingSign Element Sign na začátku s.The sign element at the beginning of s.
AllowTrailingSign Element Sign na konci s.The sign element at the end of s.
AllowParentheses Element Sign ve formě závorek, který obklopuje číselnou hodnotu.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands Element , .The , element.
AllowCurrencySymbol Element $ .The $ element.
Currency Všechny.All. Parametr s nemůže představovat šestnáctkové číslo ani číslo v exponenciální notaci.The s parameter cannot represent a hexadecimal number or a number in exponential notation.
Float Element WS na začátku nebo konci s, podepsat na začátku s a .The ws element at the beginning or end of s, sign at the beginning of s, and the . písmeno.symbol. Parametr s může také používat exponenciální zápis.The s parameter can also use exponential notation.
Number ws, sign, , a .The ws, sign, ,, and . elementu.elements.
Any Všechny styly s výjimkou s nemohou představovat hexadecimální číslo.All styles, except s cannot represent a hexadecimal number.

Parametr provider je implementace IFormatProvider, například objekt NumberFormatInfo nebo CultureInfo.The provider parameter is an IFormatProvider implementation, such as a NumberFormatInfo or CultureInfo object. Parametr provider dodává informace specifické pro jazykovou verzi používané při analýze.The provider parameter supplies culture-specific information used in parsing. Je-li provider null, je použita aktuální jazyková verze vlákna.If provider is null, the thread current culture is used.

Objekt Decimal má 29 číslic přesnosti.A Decimal object has 29 digits of precision. Pokud s představuje číslo, které má více než 29 číslic, ale má zlomkovou část a je v rozsahu MaxValue a MinValue, číslo se zaokrouhlí, ne zkráceno na 29 číslic pomocí zaokrouhlení na nejbližší.If s represents a number that has more than 29 digits, but has a fractional part and is within the range of MaxValue and MinValue, the number is rounded, not truncated, to 29 digits using rounding to nearest.

Pokud se v parametru s během operace analýzy objevil oddělovač a v případě, že je stejná Měna nebo číslo desítkové soustavy a oddělovače skupin stejné, operace analýzy předpokládá, že oddělovač je oddělovač desetinných míst, nikoli oddělovač skupiny.If a separator is encountered in the s parameter during a parse operation, and the applicable currency or number decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. Další informace o oddělovačích naleznete v tématu CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatora NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Viz také

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi.Converts the span representation of a number to its Decimal equivalent using the specified style and culture-specific format.

public static decimal Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider provider = null);
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 = null) As Decimal

Parametry

s
ReadOnlySpan<Char>

Rozsah obsahující znaky, které mají být převedeny.The span containing the characters representing the number to convert.

style
NumberStyles

Bitová kombinace hodnot NumberStyles, která určuje prvky stylu, které mohou být přítomny v s.A bitwise combination of NumberStyles values that indicates the style elements that can be present in s. Typická hodnota, která se má zadat, je Number.A typical value to specify is Number.

provider
IFormatProvider

Objekt IFormatProvider, který poskytuje informace specifické pro jazykovou verzi o formátu s.An IFormatProvider object that supplies culture-specific information about the format of s.

Návraty

Číslo Decimal odpovídající číslu obsaženému v s určeném style a provider.The Decimal number equivalent to the number contained in s as specified by style and provider.

Parse(String, IFormatProvider)

Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent pomocí zadaných informací o formátu specifické jazykové verze.Converts the string representation of a number to its Decimal equivalent using the specified culture-specific format information.

public:
 static System::Decimal Parse(System::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.The string representation of the number to convert.

provider
IFormatProvider

IFormatProvider, která poskytuje informace o analýze specifické pro jazykovou verzi o s.An IFormatProvider that supplies culture-specific parsing information about s.

Návraty

Číslo Decimal odpovídá číslu obsaženému v s určeném provider.The Decimal number equivalent to the number contained in s as specified by provider.

Výjimky

s je null.s is null.

s nemá správný formát.s is not of the correct format.

s představuje číslo menší než MinValue nebo větší než MaxValue.s represents a number less than MinValue or greater than MaxValue.

Příklady

V následujícím příkladu je obslužná rutina události kliknutí na tlačítko webového formuláře.The following example is the button click event handler of a Web form. Používá pole vrácené vlastností HttpRequest.UserLanguages k určení národního prostředí uživatele.It uses the array returned by the HttpRequest.UserLanguages property to determine the user's locale. Potom vytvoří instanci objektu CultureInfo, který odpovídá danému národnímu prostředí.It then instantiates a CultureInfo object that corresponds to that locale. Objekt NumberFormatInfo, který patří k tomuto objektu CultureInfo, je následně předán metodě Parse(String, IFormatProvider) k převedení vstupu uživatele na Decimal hodnotu.The NumberFormatInfo object that belongs to that CultureInfo object is then passed to the Parse(String, IFormatProvider) method to convert the user's input to a Decimal value.

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í metody Parse(String, IFormatProvider) se běžně používá k převodu textu, který lze naformátovat různými způsoby, na hodnotu Decimal.This overload of the Parse(String, IFormatProvider) method is commonly used to convert text that can be formatted in a variety of ways to a Decimal value. Například jej lze použít k převodu textu zadaného uživatelem do textového pole HTML na číselnou hodnotu.For example, it can be used to convert the text entered by a user into an HTML text box to a numeric value.

Parametr s obsahuje číslo formuláře:The s parameter contains a number of the form:

specifikace osobě [číslice,] číslice [. zlomkové číslice] [ws][ws][sign][digits,]digits[.fractional-digits][ws]

Prvky v hranatých závorkách ([a]) jsou volitelné.Elements in square brackets ([ and ]) are optional. Následující tabulka popisuje jednotlivé prvky.The following table describes each element.

PrvekElement PopisDescription
specifikacews Volitelné prázdné místo.Optional white space.
signsign Nepovinný znak.An optional sign.
znakdigits Řada číslic od 0 do 9.A sequence of digits ranging from 0 to 9.
,, Symbol oddělovače tisíců, specifický pro jazykovou verzi.A culture-specific thousands separator symbol.
.. Symbol desetinné čárky specifický pro jazykovou verzi.A culture-specific decimal point symbol.
zlomkové číslicefractional-digits Řada číslic od 0 do 9.A sequence of digits ranging from 0 to 9.

Parametr s je interpretován pomocí stylu NumberStyles.Number.The s parameter is interpreted using the NumberStyles.Number style. To znamená, že mezery a oddělovače tisíců jsou povoleny, ale symboly měny nikoli.This means that white space and thousands separators are allowed but currency symbols are not. Chcete-li explicitně definovat prvky (například symboly měny, oddělovače tisíců a prázdné znaky), které mohou být k dispozici v s, použijte metodu Decimal.Parse(String, NumberStyles, IFormatProvider).To explicitly define the elements (such as currency symbols, thousands separators, and white space) that can be present in s, use the Decimal.Parse(String, NumberStyles, IFormatProvider) method.

Parametr provider je implementace IFormatProvider, například objekt NumberFormatInfo nebo CultureInfo.The provider parameter is an IFormatProvider implementation, such as a NumberFormatInfo or CultureInfo object. Parametr provider dodává informace specifické pro jazykovou verzi používané při analýze.The provider parameter supplies culture-specific information used in parsing. Je-li provider null, je použita aktuální jazyková verze vlákna.If provider is null, the thread current culture is used.

Objekt Decimal má 29 číslic přesnosti.A Decimal object has 29 digits of precision. Pokud s představuje číslo, které má více než 29 číslic, ale má zlomkovou část a je v rozsahu MaxValue a MinValue, číslo se zaokrouhlí, ne zkráceno na 29 číslic pomocí zaokrouhlení na nejbližší.If s represents a number that has more than 29 digits, but has a fractional part and is within the range of MaxValue and MinValue, the number is rounded, not truncated, to 29 digits using rounding to nearest.

Pokud se v parametru s během operace analýzy objevil oddělovač a v případě, že je stejná Měna nebo číslo desítkové soustavy a oddělovače skupin stejné, operace analýzy předpokládá, že oddělovač je oddělovač desetinných míst, nikoli oddělovač skupiny.If a separator is encountered in the s parameter during a parse operation, and the applicable currency or number decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. Další informace o oddělovačích naleznete v tématu CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatora NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Viz také

Parse(String, NumberStyles)

Převede řetězcové vyjádření čísla v zadaném stylu na jeho ekvivalent Decimal.Converts the string representation of a number in a specified style to its Decimal equivalent.

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.The string representation of the number to convert.

style
NumberStyles

Bitová kombinace hodnot NumberStyles, která určuje prvky stylu, které mohou být přítomny v s.A bitwise combination of NumberStyles values that indicates the style elements that can be present in s. Typická hodnota, která se má zadat, je Number.A typical value to specify is Number.

Návraty

Číslo Decimal odpovídá číslu obsaženému v s určeném style.The Decimal number equivalent to the number contained in s as specified by style.

Výjimky

s je null.s is null.

style není NumberStyles hodnota.style is not a NumberStyles value.

-nebo--or- hodnota AllowHexSpecifier style.style is the AllowHexSpecifier value.

s nemá správný formát.s is not in the correct format.

s představuje číslo menší než MinValue nebo větší než MaxValues represents a number less than MinValue or greater than MaxValue

Příklady

Následující příklad kódu používá metodu Parse(String, NumberStyles) k analýze řetězcové reprezentace Decimal hodnot pomocí jazykové verze en-US.The following code example uses the Parse(String, NumberStyles) method to parse the string representations of Decimal values using the en-US culture.

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.
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 povoleny v parametru s pro úspěšné provedení operace analýzy.The style parameter defines the style elements (such as thousands separators, white space, and currency symbols) that are allowed in the s parameter for the parse operation to succeed. Musí se jednat o kombinaci bitových příznaků z výčtu NumberStyles.It must be a combination of bit flags from the NumberStyles enumeration. Následující členové NumberStyles nejsou podporováni:The following NumberStyles members are not supported:

V závislosti na hodnotě style``s parametr může obsahovat následující prvky:Depending on the value of style, the s parameter may include the following elements:

specifikace [$] osobě [číslice,] číslice [. zlomkové číslice] [e [Sign] číslice] [ws][ws][$][sign][digits,]digits[.fractional-digits][e[sign]digits][ws]

Prvky v hranatých závorkách ([a]) jsou volitelné.Elements in square brackets ([ and ]) are optional. Následující tabulka popisuje jednotlivé prvky.The following table describes each element.

PrvekElement PopisDescription
specifikacews Volitelné prázdné místo.Optional white space. Na začátku s se může zobrazit prázdný znak, pokud style obsahuje příznak NumberStyles.AllowLeadingWhite a může se objevit na konci s Pokud style obsahuje příznak NumberStyles.AllowTrailingWhite.White space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
$ Symbol měny pro konkrétní jazykovou verzi.A culture-specific currency symbol. Jeho pozice v řetězci je definována NumberFormatInfo.CurrencyNegativePattern a NumberFormatInfo.CurrencyPositivePattern vlastností aktuální jazykové verze.Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern and NumberFormatInfo.CurrencyPositivePattern properties of the current culture. Symbol měny aktuální jazykové verze se může objevit v s, pokud style obsahuje příznak NumberStyles.AllowCurrencySymbol.The current culture's currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Nepovinný znak.An optional sign. Znaménko se může zobrazit na začátku s, pokud style obsahuje příznak NumberStyles.AllowLeadingSign a může se objevit na konci s Pokud style obsahuje příznak NumberStyles.AllowTrailingSign.The sign can appear at the beginning of s if style includes the NumberStyles.AllowLeadingSign flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingSign flag. Závorky lze použít v s k označení záporné hodnoty, pokud style obsahuje příznak NumberStyles.AllowParentheses.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
znakdigits Řada číslic od 0 do 9.A sequence of digits ranging from 0 to 9.
,, Symbol oddělovače tisíců, specifický pro jazykovou verzi.A culture-specific thousands separator symbol. Oddělovač tisíců aktuální jazykové verze se může objevit v s, pokud style obsahuje příznak NumberStyles.AllowThousands.The current culture's thousands separator can appear in s if style includes the NumberStyles.AllowThousands flag.
.. Symbol desetinné čárky specifický pro jazykovou verzi.A culture-specific decimal point symbol. Symbol desetinné čárky aktuální jazykové verze se může objevit v s, pokud style obsahuje příznak NumberStyles.AllowDecimalPoint.The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
zlomkové číslicefractional-digits Řada číslic od 0 do 9.A sequence of digits ranging from 0 to 9. Zlomkové číslice se mohou v s zobrazit pouze v případě, že style obsahuje příznak NumberStyles.AllowDecimalPoint.Fractional digits can appear in s only if style includes the NumberStyles.AllowDecimalPoint flag.
cerebrálníe Znak "e" nebo "E", který označuje, že hodnota je vyjádřena v exponenciální notaci.The 'e' or 'E' character, which indicates that the value is represented in exponential notation. Parametr s může představovat číslo v exponenciální notaci, pokud style obsahuje příznak NumberStyles.AllowExponent.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.

Poznámka

Všechny ukončující znaky NUL (U + 0000) ve s jsou ignorovány operací analýzy bez ohledu na hodnotu argumentu style.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Řetězec s pouze číslicemi (který odpovídá stylu None) se vždy analyzuje úspěšně.A string with digits only (which corresponds to the None style) always parses successfully. Zbývající prvky ovládacího prvku NumberStyles členy, které mohou být ale ve vstupním řetězci nemusejí být přítomny.The remaining NumberStyles members control elements that may be but are not required to be present in the input string. Následující tabulka uvádí, jak jednotlivé členy NumberStyles ovlivňují prvky, které mohou být přítomny v s.The following table indicates how individual NumberStyles members affect the elements that may be present in s.

Hodnota NumberStylesNumberStyles value Prvky, které jsou povoleny v s, kromě číslicElements permitted in s in addition to digits
None Pouze element číslice .The digits element only.
AllowDecimalPoint Rozhraní .The . a prvky zlomkové číslice .and fractional-digits elements.
AllowExponent Parametr s může také používat exponenciální zápis.The s parameter can also use exponential notation. Tento příznak podporuje hodnoty ve formátu číslice**E. k úspěšné analýze řetězců s prvky, jako jsou kladné nebo záporné znaménka a symboly desetinných míst, jsou potřeba další příznaky.This flag supports values in the form digitsEdigits; additional flags are needed to successfully parse strings with elements such as positive or negative signs and decimal point symbols.
AllowLeadingWhite Element WS na začátku s.The ws element at the beginning of s.
AllowTrailingWhite Element WS na konci s.The ws element at the end of s.
AllowLeadingSign Element Sign na začátku s.The sign element at the beginning of s.
AllowTrailingSign Element Sign na konci s.The sign element at the end of s.
AllowParentheses Element Sign ve formě závorek, který obklopuje číselnou hodnotu.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands Element , .The , element.
AllowCurrencySymbol Element $ .The $ element.
Currency Všechny.All. Parametr s nemůže představovat šestnáctkové číslo ani číslo v exponenciální notaci.The s parameter cannot represent a hexadecimal number or a number in exponential notation.
Float Element WS na začátku nebo konci s, podepsat na začátku sa symbol ..The ws element at the beginning or end of s, sign at the beginning of s, and the . symbol. Parametr s může také používat exponenciální zápis.The s parameter can also use exponential notation.
Number Prvky ws, sign, , a ..The ws, sign, , and . elements.
Any Všechny styly s výjimkou s nemohou představovat hexadecimální číslo.All styles, except s cannot represent a hexadecimal number.

Parametr s je analyzován pomocí informací o formátování v objektu NumberFormatInfo inicializovaném pro aktuální jazykovou verzi systému.The s parameter is parsed using the formatting information in a NumberFormatInfo object initialized for the current system culture. Další informace najdete v tématu CurrentInfo.For more information, see CurrentInfo.

Decimal má 29 číslic přesnosti.A Decimal has 29 digits of precision. Pokud s představuje číslo, které má více než 29 číslic, ale má zlomkovou část a je v rozsahu MaxValue a MinValue, číslo se zaokrouhlí, ne zkráceno na 29 číslic pomocí zaokrouhlení na nejbližší.If s represents a number that has more than 29 digits, but has a fractional part and is within the range of MaxValue and MinValue, the number is rounded, not truncated, to 29 digits using rounding to nearest.

Pokud se v parametru s během operace analýzy objevil oddělovač, styles zahrnuje hodnoty NumberStyles.AllowThousands a NumberStyles.AllowDecimalPoint a příslušná Měna nebo číslo v desítkové soustavě a oddělovači skupin jsou stejné, operace analýzy předpokládá, že oddělovač je oddělovač desetinných míst místo oddělovače skupiny.If a separator is encountered in the s parameter during a parse operation, styles includes the NumberStyles.AllowThousands and NumberStyles.AllowDecimalPoint values, and the applicable currency or number decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. Další informace o oddělovačích naleznete v tématu CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatora NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Viz také

Parse(String)

Převede řetězcové vyjádření čísla na jeho ekvivalent Decimal.Converts the string representation of a number to its Decimal equivalent.

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.The string representation of the number to convert.

Návraty

Ekvivalent k číslu obsaženému v s.The equivalent to the number contained in s.

Výjimky

s je null.s is null.

s nemá správný formát.s is not in the correct format.

s představuje číslo menší než MinValue nebo větší než MaxValue.s represents a number less than MinValue or greater than MaxValue.

Příklady

Následující příklad kódu používá metodu Parse(String) k analýze řetězcových reprezentací hodnot Decimal.The following code example uses the Parse(String) method to parse string representations of Decimal values.

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'. 
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:Parameter s contains a number of the form:

specifikace osobě [číslice,] číslice [. zlomkové číslice] [ws][ws][sign][digits,]digits[.fractional-digits][ws]

Prvky v hranatých závorkách ([a]) jsou volitelné.Elements in square brackets ([ and ]) are optional. Následující tabulka popisuje jednotlivé prvky.The following table describes each element.

PrvekElement PopisDescription
specifikacews Volitelné prázdné místo.Optional white space.
signsign Nepovinný znak.An optional sign.
znakdigits Řada číslic od 0 do 9.A sequence of digits ranging from 0 to 9.
,, Symbol oddělovače tisíců, specifický pro jazykovou verzi.A culture-specific thousands separator symbol.
.. Symbol desetinné čárky specifický pro jazykovou verzi.A culture-specific decimal point symbol.
zlomkové číslicefractional-digits Řada číslic od 0 do 9.A sequence of digits ranging from 0 to 9.

Parametr s je interpretován pomocí stylu NumberStyles.Number.Parameter s is interpreted using the NumberStyles.Number style. To znamená, že mezery a oddělovače tisíců jsou povoleny, ale symboly měny nikoli.This means that white space and thousands separators are allowed but currency symbols are not. Chcete-li explicitně definovat prvky (například symboly měny, oddělovače tisíců a prázdné znaky), které mohou být k dispozici v s, použijte buď metodu Decimal.Parse(String, NumberStyles) nebo Decimal.Parse(String, NumberStyles, IFormatProvider).To explicitly define the elements (such as currency symbols, thousands separators, and white space) that can be present in s, use either the Decimal.Parse(String, NumberStyles) or the Decimal.Parse(String, NumberStyles, IFormatProvider) method.

Parametr s je analyzován pomocí informací o formátování NumberFormatInfo inicializovaných pro aktuální jazykovou verzi systému.Parameter s is parsed using the formatting information in a NumberFormatInfo initialized for the current system culture. Další informace najdete v tématu CurrentInfo.For more information, see CurrentInfo. Chcete-li analyzovat řetězec pomocí informací o formátování některé jiné jazykové verze, použijte metodu Decimal.Parse(String, IFormatProvider) nebo Decimal.Parse(String, NumberStyles, IFormatProvider).To parse a string using the formatting information of some other culture, use the Decimal.Parse(String, IFormatProvider) or Decimal.Parse(String, NumberStyles, IFormatProvider) method.

V případě potřeby se hodnota s zaokrouhluje pomocí zaokrouhlování na nejbližší.If necessary, the value of s is rounded using rounding to nearest.

Decimal má 29 číslic přesnosti.A Decimal has 29 digits of precision. Pokud s představuje číslo, které má více než 29 číslic, ale má zlomkovou část a je v rozsahu MaxValue a MinValue, číslo se zaokrouhlí, ne zkráceno na 29 číslic pomocí zaokrouhlení na nejbližší.If s represents a number that has more than 29 digits, but has a fractional part and is within the range of MaxValue and MinValue, the number is rounded, not truncated, to 29 digits using rounding to nearest.

Pokud během operace analýzy dojde k zaznamenání oddělovače v parametru s a příslušné oddělovače nebo desetinné číslo a oddělovače skupin jsou stejné, operace analýzy předpokládá, že oddělovač je oddělovač desetinných míst namísto oddělovače skupiny.If during a parse operation a separator is encountered in the s parameter, and the applicable currency or number decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. Další informace o oddělovačích naleznete v tématu CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatora NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Viz také

Platí pro