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

Definición

Convierte la representación en forma de cadena de un número en su Decimal equivalente.Converts the string representation of a number to its Decimal equivalent.

Sobrecargas

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

Convierte la representación de cadena de un número en su Decimal equivalente utilizando el estilo y el formato específico de la referencia cultural que se hayan especificado.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)

Convierte la representación de cadena de un número en su Decimal equivalente utilizando la información de formato específica de la referencia cultural especificada.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)

Convierte la representación de cadena de un número con un estilo especificado en su Decimal equivalente.Converts the string representation of a number in a specified style to its Decimal equivalent.

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

Convierte la representación en forma de cadena de un número en su Decimal equivalente.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)

Convierte la representación de cadena de un número en su Decimal equivalente utilizando el estilo y el formato específico de la referencia cultural que se hayan especificado.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

Parámetros

s
String String String String

Representación de cadena del número que va a convertirse.The string representation of the number to convert.

style
NumberStyles NumberStyles NumberStyles NumberStyles

Combinación bit a bit de valores NumberStyles que indica los elementos de estilo que pueden estar presentes en s.A bitwise combination of NumberStyles values that indicates the style elements that can be present in s. Un valor que se especifica de forma habitual es Number.A typical value to specify is Number.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Objeto IFormatProvider que aporta información específica de la referencia cultural acerca del formato de s.An IFormatProvider object that supplies culture-specific information about the format of s.

Devoluciones

Número Decimal equivalente al número contenido en s, tal y como especifican style y provider.The Decimal number equivalent to the number contained in s as specified by style and provider.

Excepciones

s no tiene el formato correcto.s is not in the correct format.

s representa un número menor que MinValue o mayor que MaxValue.s represents a number less than MinValue or greater than MaxValue.

style no es un valor NumberStyles.style is not a NumberStyles value.

o bien-or- style es el valor AllowHexSpecifier.style is the AllowHexSpecifier value.

Ejemplos

En el ejemplo siguiente se usan varios style parámetros provider y para analizar las representaciones de cadena Decimal de los 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. 
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.

Comentarios

El style parámetro define el formato permitido s del parámetro para que la operación de análisis se realice correctamente.The style parameter defines the allowable format of the s parameter for the parse operation to succeed. Debe ser una combinación de marcas de bits de la NumberStyles enumeración.It must be a combination of bit flags from the NumberStyles enumeration. No se NumberStyles admiten los siguientes miembros:The following NumberStyles members are not supported:

Dependiendo del valor de style, el s parámetro puede incluir los siguientes elementos:Depending on the value of style, the s parameter may include the following elements:

WS [$] sesión [digits,] digits [. fraccionario-digits] [e [Sign] digits] [ws][ws][$][sign][digits,]digits[.fractional-digits][e[sign]digits][ws]

Los elementos de los corchetes ([ y ]) son opcionales.Elements in square brackets ([ and ]) are optional. En esta tabla se describe cada elemento.The following table describes each element.

ElementoElement DescripciónDescription
$ Un símbolo de divisa específico de la referencia cultural.A culture-specific currency symbol. Su posición en la cadena se define mediante las CurrencyNegativePattern propiedades CurrencyPositivePattern y del NumberFormatInfo objeto devuelto por el GetFormat método del 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. El símbolo de moneda puede aparecer s en style si incluye NumberStyles.AllowCurrencySymbol la marca.The currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
wsws Espacio en blanco opcional.Optional white space. Puede aparecer un espacio en blanco al principio s de style si incluye NumberStyles.AllowLeadingWhite la marca y puede aparecer al final de s si style incluye la NumberStyles.AllowTrailingWhite marca.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 Un signo opcional.An optional sign. El signo puede aparecer al principio de s si style incluye la NumberStyles.AllowLeadingSign marca y puede aparecer al final de s si style incluye la NumberStyles.AllowTrailingSign marca.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. Los paréntesis se pueden usar en s para indicar un valor negativo si style incluye la NumberStyles.AllowParentheses marca.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
digitsdigits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9.
,, Un símbolo de separador de miles específico de la referencia cultural.A culture-specific thousands separator symbol. El separador de miles de la referencia provider cultural definida por s puede style aparecer en NumberStyles.AllowThousands si incluye la marca.The thousands separator of the culture defined by provider can appear in s if style includes the NumberStyles.AllowThousands flag.
.. Un símbolo de separador decimal específico de la referencia cultural.A culture-specific decimal point symbol. El símbolo de separador decimal de la provider referencia cultural definida s por puede aparecer NumberStyles.AllowDecimalPoint en si style incluye la marca.The decimal point symbol of the culture defined by provider can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
fractional-digitsfractional-digits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9. Los dígitos fraccionarios solo pueden s aparecer en style si incluye NumberStyles.AllowDecimalPoint la marca.Fractional digits can appear in s only if style includes the NumberStyles.AllowDecimalPoint flag.
ee El carácter ' e ' o ' E ', que indica que el valor se representa en notación exponencial.The 'e' or 'E' character, which indicates that the value is represented in exponential notation. El s parámetro puede representar un número en notación exponencial si style incluye la NumberStyles.AllowExponent marca.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.

Nota

Los caracteres NUL de terminación (U + 0000) s de se omiten en la operación de análisis, independientemente del valor style del argumento.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Una cadena solo con dígitos (que corresponde al None estilo) siempre se analiza correctamente.A string with digits only (which corresponds to the None style) always parses successfully. Los miembros NumberStyles restantes controlan los elementos que pueden estar presentes en la cadena de entrada, pero que no son necesarios.The remaining NumberStyles members control elements that may be but are not required to be present in the input string. En la tabla siguiente se indica NumberStyles cómo afectan los miembros individuales a los elementos que spueden estar presentes en.The following table indicates how individual NumberStyles members affect the elements that may be present in s.

Valor NumberStylesNumberStyles value Elementos permitidos en s además de dígitosElements permitted in s in addition to digits
None Solo ** el elemento digits.The digits element only.
AllowDecimalPoint El elemento de lenguaje .The . y los elementos de dígitos fraccionarios .and fractional-digits elements.
AllowExponent El s parámetro también puede usar la notación exponencial.The s parameter can also use exponential notation. Esta marca admite valores con el formato dígitosEdígitos; se necesitan marcas adicionales para analizar correctamente las cadenas con elementos como signos positivos o negativos y símbolos de separador decimal.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 Elemento WS al principio de s.The ws element at the beginning of s.
AllowTrailingWhite Elemento WS al final de s.The ws element at the end of s.
AllowLeadingSign Elemento de signo situado al principio de s.The sign element at the beginning of s.
AllowTrailingSign El elemento Sign al final de s.The sign element at the end of s.
AllowParentheses El elemento Sign en el formato de paréntesis que rodea el valor numérico.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands El elemento , .The , element.
AllowCurrencySymbol $ Elemento.The $ element.
Currency Todos.All. El s parámetro no puede representar un número hexadecimal o un número en notación exponencial.The s parameter cannot represent a hexadecimal number or a number in exponential notation.
Float El elemento WS al principio o al final de s, Sign al principio de sy .The ws element at the beginning or end of s, sign at the beginning of s, and the . símbolo.symbol. El s parámetro también puede usar la notación exponencial.The s parameter can also use exponential notation.
Number ,,, Y . ** ws signThe ws, sign, ,, and . elemento.elements.
Any Todos los estilos, s excepto no pueden representar un número hexadecimal.All styles, except s cannot represent a hexadecimal number.

El provider parámetro es una IFormatProvider implementación de, como un NumberFormatInfo objeto CultureInfo o.The provider parameter is an IFormatProvider implementation, such as a NumberFormatInfo or CultureInfo object. El provider parámetro proporciona información específica de la referencia cultural que se usa en el análisis.The provider parameter supplies culture-specific information used in parsing. Si provider es null, se usa la referencia cultural actual del subproceso.If provider is null, the thread current culture is used.

Un Decimal objeto tiene 29 dígitos de precisión.A Decimal object has 29 digits of precision. Si s representa un número que tiene más de 29 dígitos pero tiene una parte fraccionaria y está dentro del intervalo de MaxValue y MinValue, el número se redondea, no se trunca, a 29 dígitos utilizando el redondeo al más 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.

Si se encuentra un separador en s el parámetro durante una operación de análisis, y los separadores de moneda o de número decimal y de grupo correspondientes son iguales, la operación de análisis supone que el separador es un separador decimal en lugar de un grupo. separador.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 obtener más información acerca de los separadores CurrencyGroupSeparator, vea NumberGroupSeparator CurrencyDecimalSeparator, NumberDecimalSeparator, y.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Consulte también:

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

Parámetros

Devoluciones

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

Convierte la representación de cadena de un número en su Decimal equivalente utilizando la información de formato específica de la referencia cultural especificada.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

Parámetros

s
String String String String

Representación de cadena del número que va a convertirse.The string representation of the number to convert.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

IFormatProvider que aporta información de análisis específica de la referencia cultural sobre s.An IFormatProvider that supplies culture-specific parsing information about s.

Devoluciones

Número Decimal equivalente al número contenido en s, tal y como especifica provider.The Decimal number equivalent to the number contained in s as specified by provider.

Excepciones

s no tiene el formato correcto.s is not of the correct format.

s representa un número menor que MinValue o mayor que MaxValue.s represents a number less than MinValue or greater than MaxValue.

Ejemplos

El ejemplo siguiente es el controlador de eventos de clic de botón de un formulario Web Forms.The following example is the button click event handler of a Web form. Usa la matriz devuelta por la HttpRequest.UserLanguages propiedad para determinar la configuración regional del usuario.It uses the array returned by the HttpRequest.UserLanguages property to determine the user's locale. A continuación, crea una CultureInfo instancia de un objeto que corresponde a esa configuración regional.It then instantiates a CultureInfo object that corresponds to that locale. A NumberFormatInfo continuación, el objeto que CultureInfo pertenece a ese objeto Parse(String, IFormatProvider) se pasa al método para convertir la entrada del usuario en Decimal un 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

Comentarios

Esta sobrecarga del Parse(String, IFormatProvider) método se usa normalmente para convertir texto al que se puede dar formato de varias maneras a un 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 ejemplo, se puede usar para convertir el texto escrito por un usuario en un cuadro de texto HTML en un 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.

El s parámetro contiene un número de la forma:The s parameter contains a number of the form:

WS sesión [digits,] digits [. fraccionario-digits] [ws][ws][sign][digits,]digits[.fractional-digits][ws]

Los elementos de los corchetes ([ y ]) son opcionales.Elements in square brackets ([ and ]) are optional. En esta tabla se describe cada elemento.The following table describes each element.

ElementoElement DescripciónDescription
wsws Espacio en blanco opcional.Optional white space.
signsign Un signo opcional.An optional sign.
digitsdigits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9.
,, Un símbolo de separador de miles específico de la referencia cultural.A culture-specific thousands separator symbol.
.. Un símbolo de separador decimal específico de la referencia cultural.A culture-specific decimal point symbol.
fractional-digitsfractional-digits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9.

El s parámetro se interpreta utilizando el NumberStyles.Number estilo.The s parameter is interpreted using the NumberStyles.Number style. Esto significa que los espacios en blanco y los separadores de miles están permitidos, pero no los símbolos de moneda.This means that white space and thousands separators are allowed but currency symbols are not. Para definir explícitamente los elementos (como los símbolos de moneda, los separadores de miles y los espacios en blanco s) que pueden Decimal.Parse(String, NumberStyles, IFormatProvider) estar presentes en, use el 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.

El provider parámetro es una IFormatProvider implementación de, como un NumberFormatInfo objeto CultureInfo o.The provider parameter is an IFormatProvider implementation, such as a NumberFormatInfo or CultureInfo object. El provider parámetro proporciona información específica de la referencia cultural que se usa en el análisis.The provider parameter supplies culture-specific information used in parsing. Si provider es null, se usa la referencia cultural actual del subproceso.If provider is null, the thread current culture is used.

Un Decimal objeto tiene 29 dígitos de precisión.A Decimal object has 29 digits of precision. Si s representa un número que tiene más de 29 dígitos pero tiene una parte fraccionaria y está dentro del intervalo de MaxValue y MinValue, el número se redondea, no se trunca, a 29 dígitos utilizando el redondeo al más 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.

Si se encuentra un separador en s el parámetro durante una operación de análisis, y los separadores de moneda o de número decimal y de grupo correspondientes son iguales, la operación de análisis supone que el separador es un separador decimal en lugar de un grupo. separador.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 obtener más información acerca de los separadores CurrencyGroupSeparator, vea NumberGroupSeparator CurrencyDecimalSeparator, NumberDecimalSeparator, y.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Consulte también:

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

Convierte la representación de cadena de un número con un estilo especificado en su 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 String String String

Representación de cadena del número que va a convertirse.The string representation of the number to convert.

style
NumberStyles NumberStyles NumberStyles NumberStyles

Combinación bit a bit de valores NumberStyles que indica los elementos de estilo que pueden estar presentes en s.A bitwise combination of NumberStyles values that indicates the style elements that can be present in s. Un valor que se especifica de forma habitual es Number.A typical value to specify is Number.

Devoluciones

Número Decimal equivalente al número contenido en s, tal y como especifica style.The Decimal number equivalent to the number contained in s as specified by style.

Excepciones

style no es un valor NumberStyles.style is not a NumberStyles value.

o bien-or- style es el valor AllowHexSpecifier.style is the AllowHexSpecifier value.

s no tiene el formato correcto.s is not in the correct format.

s representa un número menor que MinValue o mayor que MaxValue.s represents a number less than MinValue or greater than MaxValue

Ejemplos

En el ejemplo de código siguiente Parse(String, NumberStyles) se usa el método para analizar las Decimal representaciones de cadena de los valores mediante la referencia cultural 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.

Comentarios

El style parámetro define los elementos de estilo (como separadores de miles, espacios en blanco y símbolos de moneda) que se s permiten en el parámetro para que la operación de análisis se realice correctamente.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. Debe ser una combinación de marcas de bits de la NumberStyles enumeración.It must be a combination of bit flags from the NumberStyles enumeration. No se NumberStyles admiten los siguientes miembros:The following NumberStyles members are not supported:

Dependiendo del valor de style, el s parámetro puede incluir los siguientes elementos:Depending on the value of style, the s parameter may include the following elements:

WS [$] sesión [digits,] digits [. fraccionario-digits] [e [Sign] digits] [ws][ws][$][sign][digits,]digits[.fractional-digits][e[sign]digits][ws]

Los elementos de los corchetes ([ y ]) son opcionales.Elements in square brackets ([ and ]) are optional. En esta tabla se describe cada elemento.The following table describes each element.

ElementoElement DescripciónDescription
wsws Espacio en blanco opcional.Optional white space. Puede aparecer un espacio en blanco al principio s de style si incluye NumberStyles.AllowLeadingWhite la marca y puede aparecer al final de s si style incluye la NumberStyles.AllowTrailingWhite marca.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.
$ Un símbolo de divisa específico de la referencia cultural.A culture-specific currency symbol. Su posición en la cadena se define mediante las NumberFormatInfo.CurrencyNegativePattern propiedades NumberFormatInfo.CurrencyPositivePattern y de la referencia cultural actual.Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern and NumberFormatInfo.CurrencyPositivePattern properties of the current culture. El símbolo de divisa de la referencia cultural actual s puede style aparecer en NumberStyles.AllowCurrencySymbol si incluye la marca.The current culture's currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Un signo opcional.An optional sign. El signo puede aparecer al principio de s si style incluye la NumberStyles.AllowLeadingSign marca y puede aparecer al final de s si style incluye la NumberStyles.AllowTrailingSign marca.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. Los paréntesis se pueden usar en s para indicar un valor negativo si style incluye la NumberStyles.AllowParentheses marca.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
digitsdigits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9.
,, Un símbolo de separador de miles específico de la referencia cultural.A culture-specific thousands separator symbol. El separador de miles de la referencia cultural s actual style puede aparecer NumberStyles.AllowThousands en si incluye la marca.The current culture's thousands separator can appear in s if style includes the NumberStyles.AllowThousands flag.
.. Un símbolo de separador decimal específico de la referencia cultural.A culture-specific decimal point symbol. El símbolo de separador decimal de la referencia s cultural style actual puede NumberStyles.AllowDecimalPoint aparecer en si incluye la marca.The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
fractional-digitsfractional-digits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9. Los dígitos fraccionarios solo pueden s aparecer en style si incluye NumberStyles.AllowDecimalPoint la marca.Fractional digits can appear in s only if style includes the NumberStyles.AllowDecimalPoint flag.
ee El carácter ' e ' o ' E ', que indica que el valor se representa en notación exponencial.The 'e' or 'E' character, which indicates that the value is represented in exponential notation. El s parámetro puede representar un número en notación exponencial si style incluye la NumberStyles.AllowExponent marca.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.

Nota

Los caracteres NUL de terminación (U + 0000) s de se omiten en la operación de análisis, independientemente del valor style del argumento.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Una cadena solo con dígitos (que corresponde al None estilo) siempre se analiza correctamente.A string with digits only (which corresponds to the None style) always parses successfully. Los miembros NumberStyles restantes controlan los elementos que pueden estar presentes en la cadena de entrada, pero que no son necesarios.The remaining NumberStyles members control elements that may be but are not required to be present in the input string. En la tabla siguiente se indica NumberStyles cómo afectan los miembros individuales a los elementos que spueden estar presentes en.The following table indicates how individual NumberStyles members affect the elements that may be present in s.

Valor NumberStylesNumberStyles value Elementos permitidos en s además de dígitosElements permitted in s in addition to digits
None Solo ** el elemento digits.The digits element only.
AllowDecimalPoint El elemento de lenguaje .The . y los elementos de dígitos fraccionarios .and fractional-digits elements.
AllowExponent El s parámetro también puede usar la notación exponencial.The s parameter can also use exponential notation. Esta marca admite valores con el formato dígitosEdígitos; se necesitan marcas adicionales para analizar correctamente las cadenas con elementos como signos positivos o negativos y símbolos de separador decimal.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 Elemento WS al principio de s.The ws element at the beginning of s.
AllowTrailingWhite Elemento WS al final de s.The ws element at the end of s.
AllowLeadingSign Elemento de signo situado al principio de s.The sign element at the beginning of s.
AllowTrailingSign El elemento Sign al final de s.The sign element at the end of s.
AllowParentheses El elemento Sign en el formato de paréntesis que rodea el valor numérico.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands El elemento , .The , element.
AllowCurrencySymbol $ Elemento.The $ element.
Currency Todos.All. El s parámetro no puede representar un número hexadecimal o un número en notación exponencial.The s parameter cannot represent a hexadecimal number or a number in exponential notation.
Float El elemento WS al principio o al final de s, Sign al principio de sy el . símbolo.The ws element at the beginning or end of s, sign at the beginning of s, and the . symbol. El s parámetro también puede usar la notación exponencial.The s parameter can also use exponential notation.
Number Los wselementos sign ,, y ..The ws, sign, , and . elements.
Any Todos los estilos, s excepto no pueden representar un número hexadecimal.All styles, except s cannot represent a hexadecimal number.

El s parámetro se analiza utilizando la información de formato de un NumberFormatInfo objeto inicializado para la referencia cultural del sistema actual.The s parameter is parsed using the formatting information in a NumberFormatInfo object initialized for the current system culture. Para obtener más información, vea CurrentInfo.For more information, see CurrentInfo.

Un Decimal tiene 29 dígitos de precisión.A Decimal has 29 digits of precision. Si s representa un número que tiene más de 29 dígitos pero tiene una parte fraccionaria y está dentro del intervalo de MaxValue y MinValue, el número se redondea, no se trunca, a 29 dígitos utilizando el redondeo al más 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.

Si se encuentra un separador en s el parámetro durante una operación de styles análisis, NumberStyles.AllowThousands incluye NumberStyles.AllowDecimalPoint los valores y, y los separadores de moneda o número decimal y de grupo correspondientes son iguales, la operación de análisis supone que el separador es un separador decimal en lugar de un separador de grupos.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 obtener más información acerca de los separadores CurrencyGroupSeparator, vea NumberGroupSeparator CurrencyDecimalSeparator, NumberDecimalSeparator, y.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Consulte también:

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

Convierte la representación en forma de cadena de un número en su 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 String String String

Representación de cadena del número que va a convertirse.The string representation of the number to convert.

Devoluciones

Equivalente al número que se incluye en s.The equivalent to the number contained in s.

Excepciones

s no tiene el formato correcto.s is not in the correct format.

s representa un número menor que MinValue o mayor que MaxValue.s represents a number less than MinValue or greater than MaxValue.

Ejemplos

En el ejemplo de código siguiente Parse(String) se usa el método para analizar Decimal representaciones de cadena de valores.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'. 

Comentarios

El s parámetro contiene un número de la forma:Parameter s contains a number of the form:

WS sesión [digits,] digits [. fraccionario-digits] [ws][ws][sign][digits,]digits[.fractional-digits][ws]

Los elementos de los corchetes ([ y ]) son opcionales.Elements in square brackets ([ and ]) are optional. En esta tabla se describe cada elemento.The following table describes each element.

ElementoElement DescripciónDescription
wsws Espacio en blanco opcional.Optional white space.
signsign Un signo opcional.An optional sign.
digitsdigits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9.
,, Un símbolo de separador de miles específico de la referencia cultural.A culture-specific thousands separator symbol.
.. Un símbolo de separador decimal específico de la referencia cultural.A culture-specific decimal point symbol.
fractional-digitsfractional-digits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9.

El s parámetro se interpreta utilizando NumberStyles.Number el estilo.Parameter s is interpreted using the NumberStyles.Number style. Esto significa que los espacios en blanco y los separadores de miles están permitidos, pero no los símbolos de moneda.This means that white space and thousands separators are allowed but currency symbols are not. Para definir explícitamente los elementos (como los símbolos de moneda, los separadores de miles y los espacios en blanco s) que pueden estar Decimal.Parse(String, NumberStyles) presentes en Decimal.Parse(String, NumberStyles, IFormatProvider) , use el método o.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.

El s parámetro se analiza utilizando la información de formato de NumberFormatInfo una inicializada para la referencia cultural del sistema actual.Parameter s is parsed using the formatting information in a NumberFormatInfo initialized for the current system culture. Para obtener más información, vea CurrentInfo.For more information, see CurrentInfo. Para analizar una cadena utilizando la información de formato de alguna otra referencia cultural, Decimal.Parse(String, IFormatProvider) use Decimal.Parse(String, NumberStyles, IFormatProvider) el método o.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.

Si es necesario, el valor s de se redondea utilizando el redondeo al más próximo.If necessary, the value of s is rounded using rounding to nearest.

Un Decimal tiene 29 dígitos de precisión.A Decimal has 29 digits of precision. Si s representa un número que tiene más de 29 dígitos pero tiene una parte fraccionaria y está dentro del intervalo de MaxValue y MinValue, el número se redondea, no se trunca, a 29 dígitos utilizando el redondeo al más 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.

Si durante una operación de análisis se encuentra un separador s en el parámetro, y los separadores de moneda o de número decimal y de grupo correspondientes son iguales, la operación de análisis supone que el separador es un separador decimal en lugar de un grupo. separador.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 obtener más información acerca de los separadores CurrencyGroupSeparator, vea NumberGroupSeparator CurrencyDecimalSeparator, NumberDecimalSeparator, y.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Consulte también:

Se aplica a