Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Int32.Parse (Método) (String, NumberStyles, IFormatProvider)

Convierte la representación de cadena de un número con el estilo y el formato específico de la referencia cultural que se hayan especificado en el entero de 32 bits con signo equivalente.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)

public static int Parse(
	string s,
	NumberStyles style,
	IFormatProvider provider
)

Parámetros

s
Tipo: System.String
Cadena que contiene un número que se va a convertir.
style
Tipo: System.Globalization.NumberStyles
Combinación bit a bit de valores de enumeración que indica los elementos de estilo que pueden estar presentes en s. Un valor que se especifica de forma habitual es Integer.
provider
Tipo: System.IFormatProvider
Un objeto que aporta información específica de la referencia cultural sobre el formato de s.

Valor devuelto

Tipo: System.Int32
Entero con signo de 32 bits equivalente al número especificado en s.

ExcepciónCondición
ArgumentNullException

s es null.

ArgumentException

style no es un valor de NumberStyles.

O bien

style no es una combinación de los valores AllowHexSpecifier y HexNumber.

FormatException

s no tiene un formato conforme a style.

OverflowException

s representa un número menor que MinValue o mayor que MaxValue.

O bien

s incluye dígitos fraccionarios distintos de cero.

El parámetro style define los elementos de estilo (como espacios en blanco o el signo positivo) que se permiten en el parámetro s para que la operación de análisis se realice correctamente. Debe ser una combinación de marcas de bit de la enumeración NumberStyles. En función del valor de style, el parámetro s puede incluir los elementos siguientes:

[eb][$][signo][dígitos,]dígitos[.dígitos fraccionarios][e[signo]dígitos exponenciales][eb]

O bien, si style incluye AllowHexSpecifier:

[eb]dígitos hexadecimales[eb]

Los elementos entre corchetes ([ y ]) son opcionales. En la tabla siguiente se describe cada elemento.

Elemento

Descripción

eb

Espacio en blanco opcional. El espacio en blanco puede aparecer al principio de s si style incluye la marca NumberStyles.AllowLeadingWhite, y puede aparecer al final de s si style incluye la marca NumberStyles.AllowTrailingWhite.

$

Símbolo de divisa específico de la referencia cultural. Su posición en la cadena viene definida por la propiedad NumberFormatInfo.CurrencyPositivePattern del objeto NumberFormatInfo devuelto por el método GetFormat del parámetro provider. El símbolo de divisa puede aparecer en s si style incluye la marca NumberStyles.AllowCurrencySymbol.

sign

Signo opcional. El signo puede aparecer al principio de s si style incluye la marca NumberStyles.AllowLeadingSign o al final de s si style incluye la marca NumberStyles.AllowTrailingSign. Pueden usarse paréntesis en s para indicar un valor negativo si style incluye la marca NumberStyles.AllowParentheses.

dígitos

dígitos fraccionarios

dígitos exponenciales

Secuencia de dígitos de 0 a 9. Solo para fractional_digits, el dígito 0 es válido.

,

Símbolo separador de miles específico de la referencia cultural. El separador de miles de la referencia cultural especificada por provider puede aparecer en s si style incluye la marca NumberStyles.AllowThousands.

.

Símbolo separador de decimales específico de la referencia cultural. El símbolo separador de decimales de la referencia cultural especificada por provider puede aparecer en s si style incluye la marca NumberStyles.AllowDecimalPoint.

Solamente puede aparecer el dígito 0 como dígito fraccionario para que la operación de análisis se realice correctamente; si dígitos fraccionarios incluye cualquier otro dígito, se produce una excepción OverflowException.

e

Carácter "e" o "E", que indica que el valor se representa en notación exponencial. El parámetro s puede representar un número en notación exponencial si style incluye la marca NumberStyles.AllowExponent.

dígitos hexadecimales

Secuencia de dígitos hexadecimales de 0 a f o de 0 a F.

Una cadena que solo contiene dígitos decimales (que corresponde al estilo NumberStyles.None ) siempre se analiza correctamente si está en el intervalo del tipo Int32. La mayoría de los miembros NumberStyles restantes controlan los elementos que pueden estar presentes en esta cadena de entrada, aunque no sea preciso. La tabla siguiente indica la forma en que los miembros NumberStyles individuales afectan a los elementos que pueden estar presentes en s.

Valores NumberStyles no compuestos

Elementos permitidos en s además de dígitos

NumberStyles.None

Solo dígitos decimales.

NumberStyles.AllowDecimalPoint

Elementos de separador decimal (, ) y dígitos fraccionarios. No obstante, el elemento dígitos fraccionarios solamente debe incluir uno o más dígitos 0 porque; de lo contrario, se produce una excepción OverflowException.

NumberStyles.AllowExponent

El parámetro s también puede utilizar la notación exponencial. Si s representa un número en notación exponencial, debe representar un entero dentro del intervalo del tipo de datos Int32 sin un componente fraccionario distinto de cero.

NumberStyles.AllowLeadingWhite

Elemento eb al principio de s.

NumberStyles.AllowTrailingWhite

Elemento eb al final de s.

NumberStyles.AllowLeadingSign

Puede aparecer un signo positivo antes del elemento dígitos.

NumberStyles.AllowTrailingSign

Puede aparecer un signo positivo después del elemento dígitos.

NumberStyles.AllowParentheses

Elemento signo en forma de paréntesis delimitando el valor numérico.

NumberStyles.AllowThousands

Elemento de separador de miles (.).

NumberStyles.AllowCurrencySymbol

Elemento $.

Si se utiliza la marca NumberStyles.AllowHexSpecifier, s debe ser un valor hexadecimal. Las únicas otras marcas que pueden estar presentes en style son NumberStyles.AllowLeadingWhite y NumberStyles.AllowTrailingWhite. (La enumeración NumberStyles tiene un estilo de número compuesto, NumberStyles.HexNumber, que incluye ambas marcas de espacio en blanco.)

El parámetro provider es una implementación de IFormatProvider, como un objeto NumberFormatInfo o CultureInfo. El parámetro provider proporciona información específica de la referencia cultural utilizada en el análisis. Si provider es null, se utiliza NumberFormatInfo de la referencia cultural actual.

En el ejemplo siguiente se usan una serie de parámetros style y provider para analizar las representaciones de cadena de valores de tipo Int32. También se muestran algunas de las diferentes maneras en que se puede interpretar la misma cadena en función de la referencia cultural cuya información de formato se utiliza para la operación de análisis.


using System;
using System.Globalization;

public class ParseInt32
{
   public static void Main()
   {
      Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands, 
              new CultureInfo("en-GB"));
      Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands,
              new CultureInfo("fr-FR"));
      Convert("12,000", NumberStyles.Float, new CultureInfo("en-US"));

      Convert("12 425,00", NumberStyles.Float | NumberStyles.AllowThousands,
              new CultureInfo("sv-SE"));
      Convert("12,425.00", NumberStyles.Float | NumberStyles.AllowThousands,
              NumberFormatInfo.InvariantInfo);
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint, 
              new CultureInfo("fr-FR"));
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint,
              new CultureInfo("en-US"));
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowThousands,
              new CultureInfo("en-US"));
   }

   private static void Convert(string value, NumberStyles style, 
                               IFormatProvider provider)
   {
      try
      {
         int number = Int32.Parse(value, style, provider);
         Console.WriteLine("Converted '{0}' to {1}.", value, number);
      }
      catch (FormatException)
      {
         Console.WriteLine("Unable to convert '{0}'.", value);
      }   
      catch (OverflowException)
      {
         Console.WriteLine("'{0}' is out of range of the Int32 type.", value);   
      }
   }                               
}
// This example displays the following output to the console:
//       Converted '12,000' to 12000.
//       Converted '12,000' to 12.
//       Unable to convert '12,000'.
//       Converted '12 425,00' to 12425.
//       Converted '12,425.00' to 12425.
//       '631,900' is out of range of the Int32 type.
//       Unable to convert '631,900'.
//       Converted '631,900' to 631900.


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft