Decimal.Parse Decimal.Parse Decimal.Parse Decimal.Parse Method

Определение

Преобразует строковое представление числа в его эквивалент типа Decimal.Converts the string representation of a number to its Decimal equivalent.

Перегрузки

Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider)

Преобразует строковое представление числа в его эквивалент Decimal, используя заданный стиль и формат для языка и региональных параметров.Converts the string representation of a number to its Decimal equivalent using the specified style and culture-specific format.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider)

Преобразует строковое представление числа в его эквивалент Decimal, используя заданные сведения о формате для языка и региональных параметров.Converts the string representation of a number to its Decimal equivalent using the specified culture-specific format information.

Parse(String, NumberStyles) Parse(String, NumberStyles) Parse(String, NumberStyles) Parse(String, NumberStyles)

Преобразует строковое представление числа с указанным стилем в его эквивалент в формате Decimal.Converts the string representation of a number in a specified style to its Decimal equivalent.

Parse(String) Parse(String) Parse(String) Parse(String)

Преобразует строковое представление числа в его эквивалент типа Decimal.Converts the string representation of a number to its Decimal equivalent.

Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider)

Преобразует строковое представление числа в его эквивалент Decimal, используя заданный стиль и формат для языка и региональных параметров.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

Параметры

s
String String String String

Преобразовываемое строковое представление числа.The string representation of the number to convert.

style
NumberStyles NumberStyles NumberStyles NumberStyles

Побитовое сочетание значений NumberStyles, обозначающих элементы стиля, которые могут быть представлены в параметре s.A bitwise combination of NumberStyles values that indicates the style elements that can be present in s. Обычно указывается значение Number.A typical value to specify is Number.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Объект IFormatProvider предоставляет сведения о формате параметра s для определенного языка и региональных параметров.An IFormatProvider object that supplies culture-specific information about the format of s.

Возвраты

Число типа Decimal, равное числу, содержащемуся в параметре s, который задается параметрами style и provider.The Decimal number equivalent to the number contained in s as specified by style and provider.

Исключения

s имеет неправильный формат.s is not in the correct format.

Параметр s представляет число, которое меньше значения MinValue или больше значения MaxValue.s represents a number less than MinValue or greater than MaxValue.

Свойство s имеет значение null.s is null.

style не является значением NumberStyles.style is not a NumberStyles value.

- или --or- Значение параметра style равно значению AllowHexSpecifier.style is the AllowHexSpecifier value.

Примеры

В следующем примере используются различные style параметры и provider для Decimal анализа строковых представлений значений.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.

Комментарии

Параметр определяет допустимый формат s параметра для выполнения операции синтаксического анализа. styleThe style parameter defines the allowable format of the s parameter for the parse operation to succeed. Он должен представлять собой сочетание битовых флагов из NumberStyles перечисления.It must be a combination of bit flags from the NumberStyles enumeration. Следующие NumberStyles члены не поддерживаются:The following NumberStyles members are not supported:

В зависимости от значения style s параметр может включать следующие элементы:Depending on the value of style, the s parameter may include the following elements:

Протокол [$] писать [цифры,] цифры [. дробные цифры] [e [знак] цифры] [ws][ws][$][sign][digits,]digits[.fractional-digits][e[sign]digits][ws]

Элементы в квадратных скобках ([и]) являются необязательными.Elements in square brackets ([ and ]) are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
$ Символ валюты, зависящий от языка и региональных параметров.A culture-specific currency symbol. Его CurrencyNegativePattern расположение в строке определяется свойствами NumberFormatInfo и CurrencyPositivePattern объекта, возвращаемыми GetFormat методом 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. Символ валюты может отображаться в s , NumberStyles.AllowCurrencySymbol если style включает флаг.The currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
wsws Необязательный пробел.Optional white space. Пробел может s присутствовать в начале, если style включает NumberStyles.AllowLeadingWhite флаг, s и может NumberStyles.AllowTrailingWhite находиться в конце, если style включает флаг.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 Необязательный знак.An optional sign. Знак может s присутствовать в начале, если style включает NumberStyles.AllowLeadingSign флаг, s и может NumberStyles.AllowTrailingSign находиться в конце, если style включает флаг.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. Круглые скобки могут использоваться в s , чтобы указать отрицательное значение style , если NumberStyles.AllowParentheses включает флаг.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
digitsdigits Последовательность цифр в диапазоне от 0 до 9.A sequence of digits ranging from 0 to 9.
,, Символ разделителя тысяч, зависящий от языка и региональных параметров.A culture-specific thousands separator symbol. Разделитель тысяч языка и provider региональных параметров, определяемый, может использоваться в s , NumberStyles.AllowThousands если style включает флаг.The thousands separator of the culture defined by provider can appear in s if style includes the NumberStyles.AllowThousands flag.
.. Символ десятичной запятой, зависящий от языка и региональных параметров.A culture-specific decimal point symbol. Символ десятичной запятой, заданный параметром provider , может присутствовать style в s , NumberStyles.AllowDecimalPoint если включает флаг.The decimal point symbol of the culture defined by provider can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
Дробные разрядыfractional-digits Последовательность цифр в диапазоне от 0 до 9.A sequence of digits ranging from 0 to 9. Дробные цифры могут использоваться только s в том style случае, NumberStyles.AllowDecimalPoint если включает флаг.Fractional digits can appear in s only if style includes the NumberStyles.AllowDecimalPoint flag.
ee Символ "e" или "E", указывающий, что значение представлено в экспоненциальной нотации.The 'e' or 'E' character, which indicates that the value is represented in exponential notation. Параметр может представлять число в экспоненциальной нотации, style NumberStyles.AllowExponent если включает флаг. sThe s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.

Примечание

Все завершающие символы NUL (U + 0000) в s игнорируются операцией синтаксического анализа, независимо от значения style аргумента.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Строка с цифрами (которая соответствует None стилю) всегда будет успешно проанализирована.A string with digits only (which corresponds to the None style) always parses successfully. Остальные NumberStyles элементы управляют элементами, которые могут быть, но не обязательно присутствовать во входной строке.The remaining NumberStyles members control elements that may be but are not required to be present in the input string. В следующей таблице показано, как NumberStyles отдельные члены влияют на элементы, которые могут присутствовать в. sThe following table indicates how individual NumberStyles members affect the elements that may be present in s.

Значение NumberStylesNumberStyles value Элементы, разрешенные в s в дополнение к цифрамElements permitted in s in addition to digits
None Только элемент digits .The digits element only.
AllowDecimalPoint Языковой элемент .The . и дробные разрядные элементы.and fractional-digits elements.
AllowExponent s Параметр также может использовать экспоненциальную нотацию.The s parameter can also use exponential notation. Этот флаг поддерживает значения в форме цифрEцифры; Дополнительные флаги необходимы для успешного анализа строк с элементами, такими как знаки положительного или отрицательного числа и символы десятичной запятой.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 Элемент WS в начале s.The ws element at the beginning of s.
AllowTrailingWhite Элемент WS в конце s.The ws element at the end of s.
AllowLeadingSign Элемент Sign в начале s.The sign element at the beginning of s.
AllowTrailingSign Элемент Sign в конце s.The sign element at the end of s.
AllowParentheses Элемент Sign в виде круглых скобок, охватывающих числовое значение.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands Элемент , .The , element.
AllowCurrencySymbol $ Элемент.The $ element.
Currency Все.All. s Параметр не может представлять шестнадцатеричное число или число в экспоненциальной нотации.The s parameter cannot represent a hexadecimal number or a number in exponential notation.
Float Элемент WS в начале или конце s s, знак в начале и .The ws element at the beginning or end of s, sign at the beginning of s, and the . знак.symbol. s Параметр также может использовать экспоненциальную нотацию.The s parameter can also use exponential notation.
Number ws, ** **, ,И.signThe ws, sign, ,, and . элементов.elements.
Any Все стили, кроме s , не могут представлять шестнадцатеричное число.All styles, except s cannot represent a hexadecimal number.

Параметр является CultureInfo реализацией, например объектом или.NumberFormatInfo IFormatProvider providerThe provider parameter is an IFormatProvider implementation, such as a NumberFormatInfo or CultureInfo object. Параметр provider предоставляет сведения, зависящие от языка и региональных параметров, используемые при анализе.The provider parameter supplies culture-specific information used in parsing. Если значение параметра provider равно null, используются текущий язык и региональные параметры потока.If provider is null, the thread current culture is used.

Decimal Объект имеет 29 разрядов точности.A Decimal object has 29 digits of precision. Если s представляет число, которое содержит более 29 цифр, но имеет дробную часть и находится внутри MaxValue диапазона и MinValue, число округляется, а не усекается до 29 цифр с помощью округления до ближайшего числа.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.

Если в s параметре во время операции синтаксического анализа встречается разделитель, а применимые разделители денежных единиц или десятичного числа и групп совпадают, то операция синтаксического анализа предполагает, что разделитель является десятичным разделителем, а не группой. двоеточи.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. CurrencyDecimalSeparatorДополнительные сведения о разделителях см. CurrencyGroupSeparatorв разделе NumberDecimalSeparator,, и NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Дополнительно

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

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

Параметры

Возвраты

Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider)

Преобразует строковое представление числа в его эквивалент Decimal, используя заданные сведения о формате для языка и региональных параметров.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

Параметры

s
String String String String

Преобразовываемое строковое представление числа.The string representation of the number to convert.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Интерфейс IFormatProvider предоставляет сведения об анализе параметра s для соответствующего языка и региональных параметров.An IFormatProvider that supplies culture-specific parsing information about s.

Возвраты

Число типа Decimal, равное числу, содержащемуся в параметре s, который задается параметром provider.The Decimal number equivalent to the number contained in s as specified by provider.

Исключения

Формат параметра s неправильный.s is not of the correct format.

s представляет число, которое меньше значения MinValue или больше значения MaxValue.s represents a number less than MinValue or greater than MaxValue.

Примеры

В следующем примере показан обработчик событий нажатия кнопки в веб-форме.The following example is the button click event handler of a Web form. Он использует массив, возвращаемый HttpRequest.UserLanguages свойством, чтобы определить языковой стандарт пользователя.It uses the array returned by the HttpRequest.UserLanguages property to determine the user's locale. Затем создается экземпляр CultureInfo объекта, соответствующий этому языковому стандарту.It then instantiates a CultureInfo object that corresponds to that locale. Затем объект, принадлежащий этому CultureInfo объекту, передается Parse(String, IFormatProvider) методу Decimal для преобразования входных данных пользователя в значение. NumberFormatInfoThe 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

Комментарии

Эта перегрузка Parse(String, IFormatProvider) метода обычно используется для преобразования текста, который может быть отформатирован различными способами 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. Например, можно использовать для преобразования текста, вводимых пользователем, в текстовое поле HTML в числовое значение.For example, it can be used to convert the text entered by a user into an HTML text box to a numeric value.

s Параметр содержит номер формы:The s parameter contains a number of the form:

Протокол писать [цифры,] цифры [. дробные цифры] [ws][ws][sign][digits,]digits[.fractional-digits][ws]

Элементы в квадратных скобках ([и]) являются необязательными.Elements in square brackets ([ and ]) are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
wsws Необязательный пробел.Optional white space.
signsign Необязательный знак.An optional sign.
digitsdigits Последовательность цифр в диапазоне от 0 до 9.A sequence of digits ranging from 0 to 9.
,, Символ разделителя тысяч, зависящий от языка и региональных параметров.A culture-specific thousands separator symbol.
.. Символ десятичной запятой, зависящий от языка и региональных параметров.A culture-specific decimal point symbol.
Дробные разрядыfractional-digits Последовательность цифр в диапазоне от 0 до 9.A sequence of digits ranging from 0 to 9.

Параметр интерпретируется с использованием NumberStyles.Number стиля. sThe s parameter is interpreted using the NumberStyles.Number style. Это означает, что пробелы и разделители групп разрядов разрешены, а символы валют — нет.This means that white space and thousands separators are allowed but currency symbols are not. Чтобы явно определить элементы (например, символы валют, разделители тысяч и пробелы), которые могут присутствовать в s, 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.

Параметр является CultureInfo реализацией, например объектом или.NumberFormatInfo IFormatProvider providerThe provider parameter is an IFormatProvider implementation, such as a NumberFormatInfo or CultureInfo object. Параметр provider предоставляет сведения, зависящие от языка и региональных параметров, используемые при анализе.The provider parameter supplies culture-specific information used in parsing. Если значение параметра provider равно null, используются текущий язык и региональные параметры потока.If provider is null, the thread current culture is used.

Decimal Объект имеет 29 разрядов точности.A Decimal object has 29 digits of precision. Если s представляет число, которое содержит более 29 цифр, но имеет дробную часть и находится внутри MaxValue диапазона и MinValue, число округляется, а не усекается до 29 цифр с помощью округления до ближайшего числа.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.

Если в s параметре во время операции синтаксического анализа встречается разделитель, а применимые разделители денежных единиц или десятичного числа и групп совпадают, то операция синтаксического анализа предполагает, что разделитель является десятичным разделителем, а не группой. двоеточи.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. CurrencyDecimalSeparatorДополнительные сведения о разделителях см. CurrencyGroupSeparatorв разделе NumberDecimalSeparator,, и NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Дополнительно

Parse(String, NumberStyles) Parse(String, NumberStyles) Parse(String, NumberStyles) Parse(String, NumberStyles)

Преобразует строковое представление числа с указанным стилем в его эквивалент в формате 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

Параметры

s
String String String String

Преобразовываемое строковое представление числа.The string representation of the number to convert.

style
NumberStyles NumberStyles NumberStyles NumberStyles

Побитовое сочетание значений NumberStyles, обозначающих элементы стиля, которые могут быть представлены в параметре s.A bitwise combination of NumberStyles values that indicates the style elements that can be present in s. Обычно указывается значение Number.A typical value to specify is Number.

Возвраты

Число типа Decimal, равное числу, содержащемуся в параметре s, который задается параметром style.The Decimal number equivalent to the number contained in s as specified by style.

Исключения

Свойство s имеет значение null.s is null.

style не является значением NumberStyles.style is not a NumberStyles value.

- или --or- style является значением AllowHexSpecifier.style is the AllowHexSpecifier value.

Формат параметра s является неправильным.s is not in the correct format.

Параметр s представляет число, которое меньше значения MinValue или больше значения MaxValue.s represents a number less than MinValue or greater than MaxValue

Примеры

В следующем примере кода Parse(String, NumberStyles) метод используется для анализа строковых Decimal представлений значений с помощью языка и региональных параметров 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.

Комментарии

Параметр определяет элементы стиля (такие как разделители тысяч, пробелы и символы валют), допустимые s в параметре для выполнения операции синтаксического анализа. styleThe 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. Он должен представлять собой сочетание битовых флагов из NumberStyles перечисления.It must be a combination of bit flags from the NumberStyles enumeration. Следующие NumberStyles члены не поддерживаются:The following NumberStyles members are not supported:

В зависимости от значения style s параметр может включать следующие элементы:Depending on the value of style, the s parameter may include the following elements:

Протокол [$] писать [цифры,] цифры [. дробные цифры] [e [знак] цифры] [ws][ws][$][sign][digits,]digits[.fractional-digits][e[sign]digits][ws]

Элементы в квадратных скобках ([и]) являются необязательными.Elements in square brackets ([ and ]) are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
wsws Необязательный пробел.Optional white space. Пробел может s присутствовать в начале, если style включает NumberStyles.AllowLeadingWhite флаг, s и может NumberStyles.AllowTrailingWhite находиться в конце, если style включает флаг.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.
$ Символ валюты, зависящий от языка и региональных параметров.A culture-specific currency symbol. Его расположение в строке определяется NumberFormatInfo.CurrencyNegativePattern свойствами и NumberFormatInfo.CurrencyPositivePattern текущего языка и региональных параметров.Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern and NumberFormatInfo.CurrencyPositivePattern properties of the current culture. Символ валюты текущего языка и региональных параметров может отображаться s в style , если NumberStyles.AllowCurrencySymbol включает флаг.The current culture's currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Необязательный знак.An optional sign. Знак может s присутствовать в начале, если style включает NumberStyles.AllowLeadingSign флаг, s и может NumberStyles.AllowTrailingSign находиться в конце, если style включает флаг.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. Круглые скобки могут использоваться в s , чтобы указать отрицательное значение style , если NumberStyles.AllowParentheses включает флаг.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
digitsdigits Последовательность цифр в диапазоне от 0 до 9.A sequence of digits ranging from 0 to 9.
,, Символ разделителя тысяч, зависящий от языка и региональных параметров.A culture-specific thousands separator symbol. Разделитель тысяч текущего языка и региональных параметров может отображаться s в style , если NumberStyles.AllowThousands включает флаг.The current culture's thousands separator can appear in s if style includes the NumberStyles.AllowThousands flag.
.. Символ десятичной запятой, зависящий от языка и региональных параметров.A culture-specific decimal point symbol. Символ десятичной запятой текущего языка и региональных параметров может s присутствовать в NumberStyles.AllowDecimalPoint , если style включает флаг.The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
Дробные разрядыfractional-digits Последовательность цифр в диапазоне от 0 до 9.A sequence of digits ranging from 0 to 9. Дробные цифры могут использоваться только s в том style случае, NumberStyles.AllowDecimalPoint если включает флаг.Fractional digits can appear in s only if style includes the NumberStyles.AllowDecimalPoint flag.
ee Символ "e" или "E", указывающий, что значение представлено в экспоненциальной нотации.The 'e' or 'E' character, which indicates that the value is represented in exponential notation. Параметр может представлять число в экспоненциальной нотации, style NumberStyles.AllowExponent если включает флаг. sThe s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.

Примечание

Все завершающие символы NUL (U + 0000) в s игнорируются операцией синтаксического анализа, независимо от значения style аргумента.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Строка с цифрами (которая соответствует None стилю) всегда будет успешно проанализирована.A string with digits only (which corresponds to the None style) always parses successfully. Остальные NumberStyles элементы управляют элементами, которые могут быть, но не обязательно присутствовать во входной строке.The remaining NumberStyles members control elements that may be but are not required to be present in the input string. В следующей таблице показано, как NumberStyles отдельные члены влияют на элементы, которые могут присутствовать в. sThe following table indicates how individual NumberStyles members affect the elements that may be present in s.

Значение NumberStylesNumberStyles value Элементы, разрешенные в s в дополнение к цифрамElements permitted in s in addition to digits
None Только элемент digits .The digits element only.
AllowDecimalPoint Языковой элемент .The . и дробные разрядные элементы.and fractional-digits elements.
AllowExponent s Параметр также может использовать экспоненциальную нотацию.The s parameter can also use exponential notation. Этот флаг поддерживает значения в форме цифрEцифры; Дополнительные флаги необходимы для успешного анализа строк с элементами, такими как знаки положительного или отрицательного числа и символы десятичной запятой.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 Элемент WS в начале s.The ws element at the beginning of s.
AllowTrailingWhite Элемент WS в конце s.The ws element at the end of s.
AllowLeadingSign Элемент Sign в начале s.The sign element at the beginning of s.
AllowTrailingSign Элемент Sign в конце s.The sign element at the end of s.
AllowParentheses Элемент Sign в виде круглых скобок, охватывающих числовое значение.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands Элемент , .The , element.
AllowCurrencySymbol $ Элемент.The $ element.
Currency Все.All. s Параметр не может представлять шестнадцатеричное число или число в экспоненциальной нотации.The s parameter cannot represent a hexadecimal number or a number in exponential notation.
Float Элемент WS в начале или конце s s, знак в начале и . символ.The ws element at the beginning or end of s, sign at the beginning of s, and the . symbol. s Параметр также может использовать экспоненциальную нотацию.The s parameter can also use exponential notation.
Number Элементы ws ,sign и. . ,The ws, sign, , and . elements.
Any Все стили, кроме s , не могут представлять шестнадцатеричное число.All styles, except s cannot represent a hexadecimal number.

Параметр анализируется с помощью сведений о форматировании NumberFormatInfo в объекте, инициализированном для текущего языка и региональных параметров системы. sThe s parameter is parsed using the formatting information in a NumberFormatInfo object initialized for the current system culture. Для получения дополнительной информации см. CurrentInfo.For more information, see CurrentInfo.

Decimal Имеет 29 разрядов точности.A Decimal has 29 digits of precision. Если s представляет число, которое содержит более 29 цифр, но имеет дробную часть и находится внутри MaxValue диапазона и MinValue, число округляется, а не усекается до 29 цифр с помощью округления до ближайшего числа.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.

Если в s параметре во время операции синтаксического анализа обнаруживается разделитель styles , включает NumberStyles.AllowThousands значения NumberStyles.AllowDecimalPoint и, а также применимые разделители денежных единиц или чисел в группах, операция синтаксического анализа предполагает, что разделитель является десятичным разделителем, а не разделителем групп.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. CurrencyDecimalSeparatorДополнительные сведения о разделителях см. CurrencyGroupSeparatorв разделе NumberDecimalSeparator,, и NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Дополнительно

Parse(String) Parse(String) Parse(String) Parse(String)

Преобразует строковое представление числа в его эквивалент типа 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

Параметры

s
String String String String

Преобразовываемое строковое представление числа.The string representation of the number to convert.

Возвраты

Эквивалентно числу, содержащемуся в свойстве s.The equivalent to the number contained in s.

Исключения

s имеет неправильный формат.s is not in the correct format.

s представляет число, которое меньше значения MinValue или больше значения MaxValue.s represents a number less than MinValue or greater than MaxValue.

Примеры

В следующем примере кода Parse(String) метод используется для анализа строковых 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'. 

Комментарии

Параметр s содержит номер формы:Parameter s contains a number of the form:

Протокол писать [цифры,] цифры [. дробные цифры] [ws][ws][sign][digits,]digits[.fractional-digits][ws]

Элементы в квадратных скобках ([и]) являются необязательными.Elements in square brackets ([ and ]) are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
wsws Необязательный пробел.Optional white space.
signsign Необязательный знак.An optional sign.
digitsdigits Последовательность цифр в диапазоне от 0 до 9.A sequence of digits ranging from 0 to 9.
,, Символ разделителя тысяч, зависящий от языка и региональных параметров.A culture-specific thousands separator symbol.
.. Символ десятичной запятой, зависящий от языка и региональных параметров.A culture-specific decimal point symbol.
Дробные разрядыfractional-digits Последовательность цифр в диапазоне от 0 до 9.A sequence of digits ranging from 0 to 9.

Параметр s интерпретируется NumberStyles.Number с использованием стиля.Parameter s is interpreted using the NumberStyles.Number style. Это означает, что пробелы и разделители групп разрядов разрешены, а символы валют — нет.This means that white space and thousands separators are allowed but currency symbols are not. Чтобы явно определить элементы (например, символы валют, разделители тысяч и пробелы), которые могут присутствовать в s, используйте Decimal.Parse(String, NumberStyles) либо 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.

Параметр s анализируется с помощью сведений о форматировании NumberFormatInfo в инициализированном для текущего языка и региональных параметров системы.Parameter s is parsed using the formatting information in a NumberFormatInfo initialized for the current system culture. Для получения дополнительной информации см. CurrentInfo.For more information, see CurrentInfo. Чтобы выполнить синтаксический анализ строки, используя сведения о форматировании другого языка и Decimal.Parse(String, IFormatProvider) региональных 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.

При необходимости значение округляется с использованием s округления до ближайшего значения.If necessary, the value of s is rounded using rounding to nearest.

Decimal Имеет 29 разрядов точности.A Decimal has 29 digits of precision. Если s представляет число, которое содержит более 29 цифр, но имеет дробную часть и находится внутри MaxValue диапазона и MinValue, число округляется, а не усекается до 29 цифр с помощью округления до ближайшего числа.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.

Если во время операции синтаксического анализа в s параметре встречается разделитель, а применимые разделители денежных единиц или десятичного числа и групп совпадают, то операция синтаксического анализа предполагает, что разделитель является десятичным разделителем, а не группой. двоеточи.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. CurrencyDecimalSeparatorДополнительные сведения о разделителях см. CurrencyGroupSeparatorв разделе NumberDecimalSeparator,, и NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Дополнительно

Применяется к