Decimal.Parse Método

Definição

Converte a representação da cadeia de caracteres de um número no Decimal equivalente.Converts the string representation of a number to its Decimal equivalent.

Sobrecargas

Parse(String, NumberStyles, IFormatProvider)

Converte a representação de cadeia de caracteres de um número em seu Decimal equivalente usando o formato específico da cultura e estilo especificados.Converts the string representation of a number to its Decimal equivalent using the specified style and culture-specific format.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Converte a representação de intervalo de um número em seu equivalente de Decimal usando o formato específico da cultura e estilo especificados.Converts the span representation of a number to its Decimal equivalent using the specified style and culture-specific format.

Parse(String, IFormatProvider)

Converte a representação de cadeia de caracteres de um número no equivalente de Decimal usando as informações de formato específicas da cultura especificadas.Converts the string representation of a number to its Decimal equivalent using the specified culture-specific format information.

Parse(String, NumberStyles)

Converte a representação de cadeia de caracteres de um número em um estilo especificado em seu Decimal equivalente.Converts the string representation of a number in a specified style to its Decimal equivalent.

Parse(String)

Converte a representação da cadeia de caracteres de um número no Decimal equivalente.Converts the string representation of a number to its Decimal equivalent.

Parse(String, NumberStyles, IFormatProvider)

Converte a representação de cadeia de caracteres de um número em seu Decimal equivalente usando o formato específico da cultura e estilo especificados.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);
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

Parâmetros

s
String

A representação da cadeia de caracteres do número a ser convertido.The string representation of the number to convert.

style
NumberStyles

Uma combinação bit a bit de valores NumberStyles que indicam os elementos de estilo que podem estar presentes em s.A bitwise combination of NumberStyles values that indicates the style elements that can be present in s. Um valor típico a ser especificado é Number.A typical value to specify is Number.

provider
IFormatProvider

Um objeto IFormatProvider que fornece informações específicas da cultura sobre o formato de s.An IFormatProvider object that supplies culture-specific information about the format of s.

Retornos

Decimal

O número Decimal equivalente ao número contido em s, conforme especificado por style e provider.The Decimal number equivalent to the number contained in s as specified by style and provider.

Exceções

s não está no formato correto.s is not in the correct format.

s representa um número menor que MinValue ou maior que MaxValue.s represents a number less than MinValue or greater than MaxValue.

s é null.s is null.

style não é um valor NumberStyles.style is not a NumberStyles value.

- ou --or- style é o valor AllowHexSpecifier.style is the AllowHexSpecifier value.

Exemplos

O exemplo a seguir usa uma variedade style de provider parâmetros e para analisar as representações de cadeia de caracteres de Decimal valores.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 for fr-FR culture.
value = "892 694,12";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands;
provider = new CultureInfo("fr-FR");

number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '892 694,12' converted to 892694.12.

try
{
   number = Decimal.Parse(value, style, CultureInfo.InvariantCulture);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '892 694,12'.

// Parse string using "$" as the currency symbol for en-GB and
// en-US cultures.
value = "$6,032.51";
style = NumberStyles.Number | NumberStyles.AllowCurrencySymbol;
provider = new CultureInfo("en-GB");

try
{
   number = Decimal.Parse(value, style, provider);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '$6,032.51'.

provider = new CultureInfo("en-US");
number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '$6,032.51' converted to 6032.51.
Dim value As String
Dim number As Decimal
Dim style As NumberStyles
Dim provider As CultureInfo

' Parse string using " " as the thousands separator 
' and "," as the decimal separator for fr-FR culture.
value = "892 694,12"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands
provider = New CultureInfo("fr-FR")

number = Decimal.Parse(value, style, provider)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays: 
'    '892 694,12' converted to 892694.12.

Try
   number = Decimal.Parse(value, style, CultureInfo.InvariantCulture)  
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays: 
'    Unable to parse '892 694,12'.  

' Parse string using "$" as the currency symbol for en-GB and
' en-US cultures.
value = "$6,032.51"
style = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol
provider = New CultureInfo("en-GB")

Try
   number = Decimal.Parse(value, style, provider)  
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays: 
'    Unable to parse '$6,032.51'.

provider = New CultureInfo("en-US")
number = Decimal.Parse(value, style, provider)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays: 
'    '$6,032.51' converted to 6032.51.

Comentários

O parâmetro style define o formato permitido do parâmetro s para que a operação de análise seja bem-sucedida.The style parameter defines the allowable format of the s parameter for the parse operation to succeed. Ele deve ser uma combinação de sinalizadores de bits da enumeração NumberStyles.It must be a combination of bit flags from the NumberStyles enumeration. Os seguintes membros NumberStyles não são suportados:The following NumberStyles members are not supported:

Dependendo do valor de style, o parâmetro s pode incluir os seguintes elementos:Depending on the value of style, the s parameter may include the following elements:

Federation [$] Assine [dígitos,] dígitos [. frações-dígitos] [e [assinar] dígitos] [ws][ws][$][sign][digits,]digits[.fractional-digits][e[sign]digits][ws]

Os elementos entre colchetes ([ e ]) são opcionais.Elements in square brackets ([ and ]) are optional. A tabela a seguir descreve cada elemento.The following table describes each element.

ElementoElement DescriçãoDescription
$ Um símbolo de moeda específico de cultura.A culture-specific currency symbol. Sua posição na cadeia de caracteres é definida pelas CurrencyNegativePattern CurrencyPositivePattern Propriedades e do NumberFormatInfo objeto retornado pelo GetFormat método do provider parâmetro.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. O símbolo de moeda pode ser exibido em s caso style inclua o sinalizador NumberStyles.AllowCurrencySymbol.The currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
wsws Espaço em branco opcional.Optional white space. Espaço em branco pode ser exibido no início de s caso style inclua o sinalizador NumberStyles.AllowLeadingWhite e pode ser exibido no final de s caso style inclua o sinalizador 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 Um sinal opcional.An optional sign. O sinal pode ser exibido no início de s caso style inclua o sinalizador NumberStyles.AllowLeadingSign e ele pode ser exibido no final de s caso style inclua o sinalizador 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. Os parênteses podem ser usados em s para indicar um valor negativo caso style inclua o sinalizador NumberStyles.AllowParentheses.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
dígitosdigits Uma sequência de dígitos que varia de 0 a 9.A sequence of digits ranging from 0 to 9.
,, Um símbolo de separador de milhares específico da cultura.A culture-specific thousands separator symbol. O separador de milhar da cultura definida por provider pode aparecer em s se style incluir o NumberStyles.AllowThousands sinalizador.The thousands separator of the culture defined by provider can appear in s if style includes the NumberStyles.AllowThousands flag.
.. Um símbolo de vírgula decimal específico de cultura.A culture-specific decimal point symbol. O símbolo de ponto decimal da cultura definida por provider pode aparecer em s se style incluir o NumberStyles.AllowDecimalPoint sinalizador.The decimal point symbol of the culture defined by provider can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
dígitos fracionáriosfractional-digits Uma sequência de dígitos que varia de 0 a 9.A sequence of digits ranging from 0 to 9. Os dígitos fracionários só podem ser exibidos em s caso style inclua o sinalizador NumberStyles.AllowDecimalPoint.Fractional digits can appear in s only if style includes the NumberStyles.AllowDecimalPoint flag.
Orientale O caractere 'e' ou 'E', que indica se o valor é representado na notação exponencial.The 'e' or 'E' character, which indicates that the value is represented in exponential notation. O parâmetro s pode representar um número em notação exponencial caso style inclua o sinalizador NumberStyles.AllowExponent.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.

Observação

Todos os caracteres NUL (U + 0000) de encerramento s são ignorados pela operação de análise, independentemente do valor do style argumento.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Uma cadeia de caracteres apenas com dígitos (que corresponde ao estilo None ) sempre é analisada com Decimal êxito.A string with digits only (which corresponds to the None style) always parses successfully if it is in the range of the Decimal type. Os NumberStyles membros restantes controlam os elementos que podem estar, mas que não precisam estar presentes na cadeia de caracteres de entrada.The remaining NumberStyles members control elements that may be but are not required to be present in the input string. A tabela a seguir indica como os membros NumberStyles individuais afetam os elementos que podem estar presentes em s.The following table indicates how individual NumberStyles members affect the elements that may be present in s.

Valor NumberStylesNumberStyles value Elementos permitidos em s além de dígitosElements permitted in s in addition to digits
None Somente o elemento digits .The digits element only.
AllowDecimalPoint O elemento de linguagem .The . e os elementos fracionários de dígitos .and fractional-digits elements.
AllowExponent O parâmetro s também pode usar notação exponencial.The s parameter can also use exponential notation. Esse sinalizador dá suporte a valores nos dígitos E dígitos do formulário; sinalizadores adicionais são necessários para analisar com êxito as cadeias de caracteres com elementos como sinais positivos ou negativos e símbolos de ponto decimal.This flag supports values in the form digits E digits; additional flags are needed to successfully parse strings with elements such as positive or negative signs and decimal point symbols.
AllowLeadingWhite O elemento ws no início de s.The ws element at the beginning of s.
AllowTrailingWhite O elemento ws no final de s.The ws element at the end of s.
AllowLeadingSign O elemento sinal no início de s.The sign element at the beginning of s.
AllowTrailingSign O elemento sinal no final de s.The sign element at the end of s.
AllowParentheses O elemento sinal na forma de parênteses que incluem o valor numérico.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands O elemento , .The , element.
AllowCurrencySymbol O $ elemento.The $ element.
Currency Todos.All. O parâmetro s não pode representar um número hexadecimal ou um número em notação exponencial.The s parameter cannot represent a hexadecimal number or a number in exponential notation.
Float O elemento WS no início ou no fim de s , assine o início de s e o .The ws element at the beginning or end of s, sign at the beginning of s, and the . símbolo.symbol. O parâmetro s também pode usar notação exponencial.The s parameter can also use exponential notation.
Number O ws , sign , , e .The ws, sign, ,, and . elementos.elements.
Any Todos os estilos, exceto caso s não possa representar um número hexadecimal.All styles, except s cannot represent a hexadecimal number.

O parâmetro provider é uma implementação de IFormatProvider, como um objeto NumberFormatInfo ou CultureInfo.The provider parameter is an IFormatProvider implementation, such as a NumberFormatInfo or CultureInfo object. O parâmetro provider fornece informações específicas da cultura usadas na análise.The provider parameter supplies culture-specific information used in parsing. Caso provider seja null, a cultura atual do thread é usada.If provider is null, the thread current culture is used.

Um objeto Decimal tem 29 dígitos de precisão.A Decimal object has 29 digits of precision. Caso s represente um número com mais de 29 dígitos, mas com uma parte fracionária e dentro do intervalo de MaxValue e MinValue, o número é arredondado, não truncado, para 29 dígitos usando-se o arredondamento mais próximo.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.

Caso um separador esteja no parâmetro s durante uma operação de análise e a moeda aplicável ou os separadores de casa decimal e grupo sejam iguais, a operação de análise pressupõe que o separador seja um separador decimal, e não um separador de grupo.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. Para obter mais informações sobre separadores, consulte CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator e NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Confira também

Aplica-se a

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Converte a representação de intervalo de um número em seu equivalente de Decimal usando o formato específico da cultura e estilo especificados.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 = default);
public static decimal Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Number, Optional provider As IFormatProvider = Nothing) As Decimal

Parâmetros

s
ReadOnlySpan<Char>

O intervalo que contém os caracteres que representam o número a converter.The span containing the characters representing the number to convert.

style
NumberStyles

Uma combinação bit a bit de valores NumberStyles que indicam os elementos de estilo que podem estar presentes em s.A bitwise combination of NumberStyles values that indicates the style elements that can be present in s. Um valor típico a ser especificado é Number.A typical value to specify is Number.

provider
IFormatProvider

Um objeto IFormatProvider que fornece informações específicas da cultura sobre o formato de s.An IFormatProvider object that supplies culture-specific information about the format of s.

Retornos

Decimal

O número Decimal equivalente ao número contido em s, conforme especificado por style e provider.The Decimal number equivalent to the number contained in s as specified by style and provider.

Aplica-se a

Parse(String, IFormatProvider)

Converte a representação de cadeia de caracteres de um número no equivalente de Decimal usando as informações de formato específicas da cultura especificadas.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);
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

Parâmetros

s
String

A representação da cadeia de caracteres do número a ser convertido.The string representation of the number to convert.

provider
IFormatProvider

Um IFormatProvider que fornece informações de análise específicas da cultura sobre s.An IFormatProvider that supplies culture-specific parsing information about s.

Retornos

Decimal

O número Decimal equivalente ao número contido em s, conforme especificado por provider.The Decimal number equivalent to the number contained in s as specified by provider.

Exceções

s é null.s is null.

s não é do formato correto.s is not of the correct format.

s representa um número menor que MinValue ou maior que MaxValue.s represents a number less than MinValue or greater than MaxValue.

Exemplos

O exemplo a seguir é o manipulador de eventos de clique do botão de um formulário da Web.The following example is the button click event handler of a Web form. Ele usa a matriz retornada pela propriedade HttpRequest.UserLanguages para determinar a localidade do usuário.It uses the array returned by the HttpRequest.UserLanguages property to determine the user's locale. Em seguida, ele instancia um objeto CultureInfo que corresponde à localidade.It then instantiates a CultureInfo object that corresponds to that locale. O NumberFormatInfo objeto que pertence a esse CultureInfo objeto é passado para o Parse(String, IFormatProvider) método para converter a entrada do usuário em um Decimal valor.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

Comentários

Essa sobrecarga do Parse(String, IFormatProvider) método é normalmente usada para converter texto que pode ser formatado de várias maneiras para um Decimal valor.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. Por exemplo, ele pode ser usado para converter o texto inserido por usuário em uma caixa de texto HTML em um valor numérico.For example, it can be used to convert the text entered by a user into an HTML text box to a numeric value.

O parâmetro s contém um número da forma:The s parameter contains a number of the form:

Federation Assine [dígitos,] dígitos [. frações-dígitos] [ws][ws][sign][digits,]digits[.fractional-digits][ws]

Os elementos entre colchetes ([ e ]) são opcionais.Elements in square brackets ([ and ]) are optional. A tabela a seguir descreve cada elemento.The following table describes each element.

ElementoElement DescriçãoDescription
wsws Espaço em branco opcional.Optional white space.
signsign Um sinal opcional.An optional sign.
dígitosdigits Uma sequência de dígitos que varia de 0 a 9.A sequence of digits ranging from 0 to 9.
,, Um símbolo de separador de milhares específico da cultura.A culture-specific thousands separator symbol.
.. Um símbolo de vírgula decimal específico de cultura.A culture-specific decimal point symbol.
dígitos fracionáriosfractional-digits Uma sequência de dígitos que varia de 0 a 9.A sequence of digits ranging from 0 to 9.

O parâmetro s é interpretado usando-se o estilo NumberStyles.Number.The s parameter is interpreted using the NumberStyles.Number style. Isso significa que o espaço em branco e os separadores de milhares são permitidos, mas os símbolos de moeda não.This means that white space and thousands separators are allowed but currency symbols are not. Para definir explicitamente os elementos (como símbolos de moeda, separadores de milhares e espaços em branco) que podem estar presentes no s , use o Decimal.Parse(String, NumberStyles, IFormatProvider) método.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.

O parâmetro provider é uma implementação de IFormatProvider, como um objeto NumberFormatInfo ou CultureInfo.The provider parameter is an IFormatProvider implementation, such as a NumberFormatInfo or CultureInfo object. O parâmetro provider fornece informações específicas da cultura usadas na análise.The provider parameter supplies culture-specific information used in parsing. Caso provider seja null, a cultura atual do thread é usada.If provider is null, the thread current culture is used.

Um objeto Decimal tem 29 dígitos de precisão.A Decimal object has 29 digits of precision. Caso s represente um número com mais de 29 dígitos, mas com uma parte fracionária e dentro do intervalo de MaxValue e MinValue, o número é arredondado, não truncado, para 29 dígitos usando-se o arredondamento mais próximo.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.

Caso um separador esteja no parâmetro s durante uma operação de análise e a moeda aplicável ou os separadores de casa decimal e grupo sejam iguais, a operação de análise pressupõe que o separador seja um separador decimal, e não um separador de grupo.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. Para obter mais informações sobre separadores, consulte CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator e NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Confira também

Aplica-se a

Parse(String, NumberStyles)

Converte a representação de cadeia de caracteres de um número em um estilo especificado em seu Decimal equivalente.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

Parâmetros

s
String

A representação da cadeia de caracteres do número a ser convertido.The string representation of the number to convert.

style
NumberStyles

Uma combinação bit a bit de valores NumberStyles que indicam os elementos de estilo que podem estar presentes em s.A bitwise combination of NumberStyles values that indicates the style elements that can be present in s. Um valor típico a ser especificado é Number.A typical value to specify is Number.

Retornos

Decimal

O número Decimal equivalente ao número contido em s, conforme especificado por style.The Decimal number equivalent to the number contained in s as specified by style.

Exceções

s é null.s is null.

style não é um valor NumberStyles.style is not a NumberStyles value.

- ou --or- style é o valor AllowHexSpecifier.style is the AllowHexSpecifier value.

s não está no formato correto.s is not in the correct format.

s representa um número menor que MinValue ou maior que MaxValues represents a number less than MinValue or greater than MaxValue

Exemplos

O exemplo de código a seguir usa o Parse(String, NumberStyles) método para analisar as representações de cadeia de caracteres de Decimal valores usando a cultura 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.

Comentários

O style parâmetro define os elementos de estilo (como separadores de milhar, espaço em branco e símbolos de moeda) que são permitidos no s parâmetro para que a operação de análise tenha sucesso.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. Ele deve ser uma combinação de sinalizadores de bits da enumeração NumberStyles.It must be a combination of bit flags from the NumberStyles enumeration. Os seguintes membros NumberStyles não são suportados:The following NumberStyles members are not supported:

Dependendo do valor de style, o parâmetro s pode incluir os seguintes elementos:Depending on the value of style, the s parameter may include the following elements:

Federation [$] Assine [dígitos,] dígitos [. frações-dígitos] [e [assinar] dígitos] [ws][ws][$][sign][digits,]digits[.fractional-digits][e[sign]digits][ws]

Os elementos entre colchetes ([ e ]) são opcionais.Elements in square brackets ([ and ]) are optional. A tabela a seguir descreve cada elemento.The following table describes each element.

ElementoElement DescriçãoDescription
wsws Espaço em branco opcional.Optional white space. Espaço em branco pode ser exibido no início de s caso style inclua o sinalizador NumberStyles.AllowLeadingWhite e pode ser exibido no final de s caso style inclua o sinalizador 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.
$ Um símbolo de moeda específico de cultura.A culture-specific currency symbol. A posição na cadeia de caracteres é definida pelas propriedades NumberFormatInfo.CurrencyNegativePattern e NumberFormatInfo.CurrencyPositivePattern da cultura atual.Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern and NumberFormatInfo.CurrencyPositivePattern properties of the current culture. O símbolo de moeda da cultura atual pode ser exibido em s caso style inclua o sinalizador NumberStyles.AllowCurrencySymbol.The current culture's currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Um sinal opcional.An optional sign. O sinal pode ser exibido no início de s caso style inclua o sinalizador NumberStyles.AllowLeadingSign e ele pode ser exibido no final de s caso style inclua o sinalizador 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. Os parênteses podem ser usados em s para indicar um valor negativo caso style inclua o sinalizador NumberStyles.AllowParentheses.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
dígitosdigits Uma sequência de dígitos que varia de 0 a 9.A sequence of digits ranging from 0 to 9.
,, Um símbolo de separador de milhares específico da cultura.A culture-specific thousands separator symbol. O separador de milhar da cultura atual pode aparecer em s se style incluir o NumberStyles.AllowThousands sinalizador.The current culture's thousands separator can appear in s if style includes the NumberStyles.AllowThousands flag.
.. Um símbolo de vírgula decimal específico de cultura.A culture-specific decimal point symbol. O símbolo da vírgula decimal da cultura atual pode ser exibido em s caso style inclua o sinalizador NumberStyles.AllowDecimalPoint.The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
dígitos fracionáriosfractional-digits Uma sequência de dígitos que varia de 0 a 9.A sequence of digits ranging from 0 to 9. Os dígitos fracionários só podem ser exibidos em s caso style inclua o sinalizador NumberStyles.AllowDecimalPoint.Fractional digits can appear in s only if style includes the NumberStyles.AllowDecimalPoint flag.
Orientale O caractere 'e' ou 'E', que indica se o valor é representado na notação exponencial.The 'e' or 'E' character, which indicates that the value is represented in exponential notation. O parâmetro s pode representar um número em notação exponencial caso style inclua o sinalizador NumberStyles.AllowExponent.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.

Observação

Todos os caracteres NUL (U + 0000) de encerramento s são ignorados pela operação de análise, independentemente do valor do style argumento.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Uma cadeia de caracteres apenas com dígitos (que corresponde ao estilo None ) sempre é analisada com Decimal êxito.A string with digits only (which corresponds to the None style) always parses successfully if it is in the range of the Decimal type. Os NumberStyles membros restantes controlam os elementos que podem estar, mas que não precisam estar presentes na cadeia de caracteres de entrada.The remaining NumberStyles members control elements that may be but are not required to be present in the input string. A tabela a seguir indica como os membros NumberStyles individuais afetam os elementos que podem estar presentes em s.The following table indicates how individual NumberStyles members affect the elements that may be present in s.

Valor NumberStylesNumberStyles value Elementos permitidos em s além de dígitosElements permitted in s in addition to digits
None Somente o elemento digits .The digits element only.
AllowDecimalPoint O elemento de linguagem .The . e os elementos fracionários de dígitos .and fractional-digits elements.
AllowExponent O parâmetro s também pode usar notação exponencial.The s parameter can also use exponential notation. Esse sinalizador dá suporte a valores nos dígitos E dígitos do formulário; sinalizadores adicionais são necessários para analisar com êxito as cadeias de caracteres com elementos como sinais positivos ou negativos e símbolos de ponto decimal.This flag supports values in the form digits E digits; additional flags are needed to successfully parse strings with elements such as positive or negative signs and decimal point symbols.
AllowLeadingWhite O elemento ws no início de s.The ws element at the beginning of s.
AllowTrailingWhite O elemento ws no final de s.The ws element at the end of s.
AllowLeadingSign O elemento sinal no início de s.The sign element at the beginning of s.
AllowTrailingSign O elemento sinal no final de s.The sign element at the end of s.
AllowParentheses O elemento sinal na forma de parênteses que incluem o valor numérico.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands O elemento , .The , element.
AllowCurrencySymbol O $ elemento.The $ element.
Currency Todos.All. O parâmetro s não pode representar um número hexadecimal ou um número em notação exponencial.The s parameter cannot represent a hexadecimal number or a number in exponential notation.
Float O elemento WS no início ou no fim de s , assine o início de s e o . símbolo.The ws element at the beginning or end of s, sign at the beginning of s, and the . symbol. O parâmetro s também pode usar notação exponencial.The s parameter can also use exponential notation.
Number Os ws sign elementos, , e . .The ws, sign, , and . elements.
Any Todos os estilos, exceto caso s não possa representar um número hexadecimal.All styles, except s cannot represent a hexadecimal number.

O parâmetro s é analisado usando-se as informações de formatação em um objeto NumberFormatInfo inicializado para a cultura do sistema atual.The s parameter is parsed using the formatting information in a NumberFormatInfo object initialized for the current system culture. Para obter mais informações, consulte CurrentInfo.For more information, see CurrentInfo.

Um Decimal tem 29 dígitos de precisão.A Decimal has 29 digits of precision. Caso s represente um número com mais de 29 dígitos, mas com uma parte fracionária e dentro do intervalo de MaxValue e MinValue, o número é arredondado, não truncado, para 29 dígitos usando-se o arredondamento mais próximo.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.

Se um separador for encontrado no s parâmetro durante uma operação de análise, styles inclui os NumberStyles.AllowThousands valores e e NumberStyles.AllowDecimalPoint a moeda aplicável ou o número decimal e os separadores de grupo são os mesmos, a operação de análise pressupõe que o separador é um separador decimal em vez de um separador de grupo.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. Para obter mais informações sobre separadores, consulte CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator e NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Confira também

Aplica-se a

Parse(String)

Converte a representação da cadeia de caracteres de um número no Decimal equivalente.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

Parâmetros

s
String

A representação da cadeia de caracteres do número a ser convertido.The string representation of the number to convert.

Retornos

Decimal

O equivalente ao número contido em s.The equivalent to the number contained in s.

Exceções

s é null.s is null.

s não está no formato correto.s is not in the correct format.

s representa um número menor que MinValue ou maior que MaxValue.s represents a number less than MinValue or greater than MaxValue.

Exemplos

O exemplo de código a seguir usa o Parse(String) método para analisar representações de valores de cadeia de caracteres 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'.

Comentários

sO parâmetro contém um número do formulário:Parameter s contains a number of the form:

Federation Assine [dígitos,] dígitos [. frações-dígitos] [ws][ws][sign][digits,]digits[.fractional-digits][ws]

Os elementos entre colchetes ([ e ]) são opcionais.Elements in square brackets ([ and ]) are optional. A tabela a seguir descreve cada elemento.The following table describes each element.

ElementoElement DescriçãoDescription
wsws Espaço em branco opcional.Optional white space.
signsign Um sinal opcional.An optional sign.
dígitosdigits Uma sequência de dígitos que varia de 0 a 9.A sequence of digits ranging from 0 to 9.
,, Um símbolo de separador de milhares específico da cultura.A culture-specific thousands separator symbol.
.. Um símbolo de vírgula decimal específico de cultura.A culture-specific decimal point symbol.
dígitos fracionáriosfractional-digits Uma sequência de dígitos que varia de 0 a 9.A sequence of digits ranging from 0 to 9.

sO parâmetro é interpretado usando o NumberStyles.Number estilo.Parameter s is interpreted using the NumberStyles.Number style. Isso significa que o espaço em branco e os separadores de milhares são permitidos, mas os símbolos de moeda não.This means that white space and thousands separators are allowed but currency symbols are not. Para definir explicitamente os elementos (como símbolos de moeda, separadores de milhares e espaços em branco) que podem estar presentes no s , use o Decimal.Parse(String, NumberStyles) ou o Decimal.Parse(String, NumberStyles, IFormatProvider) método.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.

sO parâmetro é analisado usando as informações de formatação em uma NumberFormatInfo inicializada para a cultura do sistema atual.Parameter s is parsed using the formatting information in a NumberFormatInfo initialized for the current system culture. Para obter mais informações, consulte CurrentInfo.For more information, see CurrentInfo. Para analisar uma cadeia de caracteres usando as informações de formatação de alguma outra cultura, use o Decimal.Parse(String, IFormatProvider) Decimal.Parse(String, NumberStyles, IFormatProvider) método ou.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.

Se necessário, o valor de s é arredondado usando arredondamento para mais próximo.If necessary, the value of s is rounded using rounding to nearest.

Um Decimal tem 29 dígitos de precisão.A Decimal has 29 digits of precision. Caso s represente um número com mais de 29 dígitos, mas com uma parte fracionária e dentro do intervalo de MaxValue e MinValue, o número é arredondado, não truncado, para 29 dígitos usando-se o arredondamento mais próximo.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.

Se, durante uma operação de análise, um separador for encontrado no s parâmetro e a moeda aplicável ou o número decimal e os separadores de grupo forem os mesmos, a operação de análise assumirá que o separador é um separador decimal em vez de um separador de grupo.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. Para obter mais informações sobre separadores, consulte CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator e NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Confira também

Aplica-se a