BigInteger.Parse Método

Definición

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

Sobrecargas

Parse(String)

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

Parse(String, NumberStyles)

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

Parse(String, IFormatProvider)

Convierte la representación en forma de cadena de un número con el formato específico de la referencia cultural indicada en su BigInteger equivalente.Converts the string representation of a number in a specified culture-specific format to its BigInteger equivalent.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Convierte la representación de un número, incluida en el intervalo de solo lectura especificado de caracteres, en un estilo especificado en su equivalente BigInteger.Converts the representation of a number, contained in the specified read-only span of characters, in a specified style to its BigInteger equivalent.

Parse(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 su equivalente de BigInteger .Converts the string representation of a number in a specified style and culture-specific format to its BigInteger equivalent.

Parse(String)

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

public:
 static System::Numerics::BigInteger Parse(System::String ^ value);
public static System.Numerics.BigInteger Parse (string value);
static member Parse : string -> System.Numerics.BigInteger
Public Shared Function Parse (value As String) As BigInteger

Parámetros

value
String

Cadena que contiene el número que se va a convertir.A string that contains the number to convert.

Devoluciones

Valor equivalente al número especificado en el parámetro value.A value that is equivalent to the number specified in the value parameter.

Excepciones

value es null.value is null.

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

Ejemplos

En el ejemplo siguiente se usa el método Parse(String) para crear instancias de dos objetos BigInteger.The following example uses the Parse(String) method to instantiate two BigInteger objects. Multiplica cada objeto por otro número y, a continuación, llama al método Compare para determinar la relación entre los dos valores.It multiplies each object by another number and then calls the Compare method to determine the relationship between the two values.

string stringToParse = String.Empty;
try
{
   // Parse two strings.
   string string1, string2;
   string1 = "12347534159895123";
   string2 = "987654321357159852";
   stringToParse = string1;
   BigInteger number1 = BigInteger.Parse(stringToParse);
   Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number1);        
   stringToParse = string2;
   BigInteger number2 = BigInteger.Parse(stringToParse);
   Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number2);
   // Perform arithmetic operations on the two numbers.
   number1 *= 3;
   number2 *= 2;
   // Compare the numbers.
   int result = BigInteger.Compare(number1, number2);
   switch (result)
   {
      case -1:
         Console.WriteLine("{0} is greater than {1}.", number2, number1);
         break;
      case 0:
         Console.WriteLine("{0} is equal to {1}.", number1, number2);
         break;
      case 1:
         Console.WriteLine("{0} is greater than {1}.", number1, number2);
         break;
   }      
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse {0}.", stringToParse);
}
// The example displays the following output:
//    Converted '12347534159895123' to 12,347,534,159,895,123.
//    Converted '987654321357159852' to 987,654,321,357,159,852.
//    1975308642714319704 is greater than 37042602479685369.      
Dim stringToParse As String = String.Empty
Try
   ' Parse two strings.
   Dim string1, string2 As String
   string1 = "12347534159895123"
   string2 = "987654321357159852"
   stringToParse = string1
   Dim number1 As BigInteger = BigInteger.Parse(stringToParse)
   Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number1)
   stringToParse = string2
   Dim number2 As BigInteger = BigInteger.Parse(stringToParse)
   Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number2)
   ' Perform arithmetic operations on the two numbers.
   number1 *= 3
   number2 *= 2
   ' Compare the numbers.
   Select Case BigInteger.Compare(number1, number2)
      Case -1
         Console.WriteLine("{0} is greater than {1}.", number2, number1)
      Case 0
         Console.WriteLine("{0} is equal to {1}.", number1, number2)
      Case 1
         Console.WriteLine("{0} is greater than {1}.", number1, number2)
   End Select      
Catch e As FormatException
   Console.WriteLine("Unable to parse {0}.", stringToParse)
End Try
' The example displays the following output:
'    Converted '12347534159895123' to 12,347,534,159,895,123.
'    Converted '987654321357159852' to 987,654,321,357,159,852.
'    1975308642714319704 is greater than 37042602479685369.      

Comentarios

El parámetro value debe ser la representación de cadena de un número con el formato siguiente.The value parameter should be the string representation of a number in the following form.

[WS] [signo] dígitos[WS][ws][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.
signsign Un signo opcional.An optional sign. Los caracteres de signo válidos se determinan mediante las propiedades NumberFormatInfo.NegativeSign y NumberFormatInfo.PositiveSign de la referencia cultural actual.Valid sign characters are determined by the NumberFormatInfo.NegativeSign and NumberFormatInfo.PositiveSign properties of the current culture.
digitsdigits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9. Se omiten los ceros a la izquierda.Any leading zeros are ignored.

Nota

La cadena especificada por el parámetro value se interpreta utilizando el estilo de NumberStyles.Integer.The string specified by the value parameter is interpreted by using the NumberStyles.Integer style. No puede contener ningún separador de grupo ni separador decimal, y no puede tener una parte decimal.It cannot contain any group separators or decimal separator, and it cannot have a decimal portion.

El parámetro value se analiza utilizando la información de formato de un objeto System.Globalization.NumberFormatInfo que se inicializa para la referencia cultural del sistema actual.The value parameter is parsed by using the formatting information in a System.Globalization.NumberFormatInfo object that is initialized for the current system culture. Para más información, consulte NumberFormatInfo.CurrentInfo.For more information, see NumberFormatInfo.CurrentInfo. Para analizar una cadena utilizando la información de formato de una referencia cultural concreta, use el método Parse(String, IFormatProvider).To parse a string by using the formatting information of a specific culture, use the Parse(String, IFormatProvider) method.

Importante

Si usa el método Parse para realizar un recorrido de ida y vuelta por la representación en forma de cadena de un valor BigInteger que la salida del método ToString, debe usar el método BigInteger.ToString(String) con el especificador de formato "R" para generar la representación de cadena del valor BigInteger.If you use the Parse method to round-trip the string representation of a BigInteger value that was output by the ToString method, you should use the BigInteger.ToString(String) method with the "R" format specifier to generate the string representation of the BigInteger value. De lo contrario, la representación de cadena del BigInteger conserva solo los dígitos 50 más significativos del valor original, y los datos pueden perderse cuando se usa el método Parse para restaurar el valor de BigInteger.Otherwise, the string representation of the BigInteger preserves only the 50 most significant digits of the original value, and data may be lost when you use the Parse method to restore the BigInteger value.

Consulte también:

Parse(String, NumberStyles)

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

public:
 static System::Numerics::BigInteger Parse(System::String ^ value, System::Globalization::NumberStyles style);
public static System.Numerics.BigInteger Parse (string value, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> System.Numerics.BigInteger
Public Shared Function Parse (value As String, style As NumberStyles) As BigInteger

Parámetros

value
String

Cadena que contiene un número que se va a convertir.A string that contains a number to convert.

style
NumberStyles

Combinación bit a bit de los valores de enumeración que especifican el formato permitido de value.A bitwise combination of the enumeration values that specify the permitted format of value.

Devoluciones

Valor equivalente al número especificado en el parámetro value.A value that is equivalent to the number specified in the value parameter.

Excepciones

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

O bien-or- style incluye la marca AllowHexSpecifier o HexNumber junto con otro valor.style includes the AllowHexSpecifier or HexNumber flag along with another value.

value es null.value is null.

value no cumple el modelo de entrada especificado por NumberStyles.value does not comply with the input pattern specified by NumberStyles.

Ejemplos

En el ejemplo siguiente se muestran las llamadas al método Parse(String, NumberStyles) con varios valores posibles para el parámetro style.The following example illustrates calls to the Parse(String, NumberStyles) method with several possible values for the style parameter. Muestra cómo interpretar una cadena como un valor hexadecimal y cómo no permitir espacios y firmar símbolos.It illustrates how to interpret a string as a hexadecimal value, and how to disallow spaces and sign symbols.

BigInteger number; 
// Method should succeed (white space and sign allowed)
number = BigInteger.Parse("   -68054   ", NumberStyles.Integer);
Console.WriteLine(number);
// Method should succeed (string interpreted as hexadecimal)
number = BigInteger.Parse("68054", NumberStyles.AllowHexSpecifier);
Console.WriteLine(number);
// Method call should fail: sign not allowed
try
{
   number = BigInteger.Parse("   -68054  ", NumberStyles.AllowLeadingWhite 
                                            | NumberStyles.AllowTrailingWhite);
   Console.WriteLine(number);
}   
catch (FormatException e)
{
   Console.WriteLine(e.Message);
}                                                     
// Method call should fail: white space not allowed
try
{
   number = BigInteger.Parse("   68054  ", NumberStyles.AllowLeadingSign);
   Console.WriteLine(number);
}
catch (FormatException e)
{
   Console.WriteLine(e.Message);
}    
//
// The method produces the following output:
//
//     -68054
//     426068
//     Input string was not in a correct format.
//     Input string was not in a correct format.                                                 
Dim number As BigInteger 
' Method should succeed (white space and sign allowed)
number = BigInteger.Parse("   -68054   ", NumberStyles.Integer)
Console.WriteLine(number)
' Method should succeed (string interpreted as hexadecimal)
number = BigInteger.Parse("68054", NumberStyles.AllowHexSpecifier)
Console.WriteLine(number)
' Method call should fail: sign not allowed
Try
   number = BigInteger.Parse("   -68054  ", NumberStyles.AllowLeadingWhite _
                                            Or NumberStyles.AllowTrailingWhite)
   Console.WriteLine(number)
Catch e As FormatException
   Console.WriteLine(e.Message)
End Try                                                     
' Method call should fail: white space not allowed
Try
   number = BigInteger.Parse("   68054  ", NumberStyles.AllowLeadingSign)
   Console.WriteLine(number)
Catch e As FormatException
   Console.WriteLine(e.Message)
End Try    
'
' The method produces the following output:
'
'     -68054
'     426068
'     Input string was not in a correct format.
'     Input string was not in a correct format.                                                 

Comentarios

El parámetro style define los elementos de estilo (como el espacio en blanco, el símbolo de signo positivo o negativo, el símbolo del separador de grupo o el símbolo de separador decimal) que se permiten en el parámetro value para que la operación de análisis se realice correctamente.The style parameter defines the style elements (such as white space, the positive or negative sign symbol, the group separator symbol, or the decimal point symbol) that are allowed in the value parameter for the parse operation to succeed. styles debe ser una combinación de marcas de bits de la enumeración NumberStyles.styles must be a combination of bit flags from the NumberStyles enumeration. El parámetro style hace que esta sobrecarga de método resulte útil cuando value contiene la representación de cadena de un valor hexadecimal, cuando el sistema de números (decimal o hexadecimal) representado por value solo se conoce en tiempo de ejecución, o cuando se desea impedir el espacio en blanco o un símbolo de signo en value.The style parameter makes this method overload useful when value contains the string representation of a hexadecimal value, when the number system (decimal or hexadecimal) represented by value is known only at run time, or when you want to disallow white space or a sign symbol in value.

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

[WS] [$] [signo] [dígitos,] dígitos[.* fractional_digits*] [E [signo]exponential_digits] [WS*][ws][$*][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]

Si style incluye NumberStyles.AllowHexSpecifier, el parámetro value puede contener los elementos siguientes:If style includes NumberStyles.AllowHexSpecifier, the value parameter may contain the following elements:

[WS] hexdigits[WS][ws]hexdigits[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 de value si style incluye la marca NumberStyles.AllowLeadingWhite y puede aparecer al final de value si style incluye la marca NumberStyles.AllowTrailingWhite.White space can appear at the start of value if style includes the NumberStyles.AllowLeadingWhite flag, and it can appear at the end of value if style includes the NumberStyles.AllowTrailingWhite flag.
$ Un símbolo de divisa específico de la referencia cultural.A culture-specific currency symbol. La posición en la cadena se define mediante las propiedades NumberFormatInfo.CurrencyNegativePattern y NumberFormatInfo.CurrencyPositivePattern 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 puede aparecer en value si style incluye la marca NumberStyles.AllowCurrencySymbol.The current culture's currency symbol can appear in value if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Un signo opcional.An optional sign. El signo puede aparecer al principio de value si style incluye la marca NumberStyles.AllowLeadingSign y puede aparecer al final de value si style incluye la marca NumberStyles.AllowTrailingSign.The sign can appear at the start of value if style includes the NumberStyles.AllowLeadingSign flag, and it can appear at the end of value if style includes the NumberStyles.AllowTrailingSign flag. Se pueden usar paréntesis en value para indicar un valor negativo si style incluye la marca NumberStyles.AllowParentheses.Parentheses can be used in value to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
digitsdigits

fractional_digitsfractional_digits

exponential_digitsexponential_digits
Secuencia de dígitos del 0 al 9.A sequence of digits from 0 through 9. Por fractional_digits, solo el dígito 0 es válido.For fractional_digits, only the digit 0 is valid.
,, Un símbolo de separador de grupos específico de la referencia cultural.A culture-specific group separator symbol. El separador de grupos de la referencia cultural actual puede aparecer en value si style incluye la marca NumberStyles.AllowThousands.The current culture's group separator can appear in value 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 cultural actual puede aparecer en value si style incluye la marca NumberStyles.AllowDecimalPoint.The current culture's decimal point symbol can appear in value if style includes the NumberStyles.AllowDecimalPoint flag. Solo el dígito 0 puede aparecer como dígito fraccionario para que la operación de análisis se realice correctamente; Si fractional_digits incluye cualquier otro dígito, se produce una FormatException.Only the digit 0 can appear as a fractional digit for the parse operation to succeed; if fractional_digits includes any other digit, a FormatException is thrown.
EE El carácter "e" o "E", que indica que el valor se representa en notación exponencial (científica).The "e" or "E" character, which indicates that the value is represented in exponential (scientific) notation. El parámetro value puede representar un número en notación exponencial si style incluye la marca NumberStyles.AllowExponent.The value parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
hexdigitshexdigits Secuencia de dígitos hexadecimales de 0 a f, o de 0 a F.A sequence of hexadecimal digits from 0 through f, or 0 through F.

Nota

La operación de análisis omite los caracteres NUL (U + 0000) de terminación de s, independientemente del valor del argumento style.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 estilo NumberStyles.None) siempre se analiza correctamente.A string with digits only (which corresponds to the NumberStyles.None style) always parses successfully. La mayoría de los miembros de la NumberStyles restantes controlan los elementos que pueden estar presentes, pero que no es necesario que estén presentes, en la cadena de entrada.Most of the remaining NumberStyles members control elements that may be present, but are not required to be present, in the input string. En la tabla siguiente se indica cómo los miembros de NumberStyles individuales afectan a los elementos que pueden estar presentes en value.The following table indicates how individual NumberStyles members affect the elements that may be present in value.

Valor de NumberStylesNumberStyles value Elementos permitidos en value además de dígitosElements permitted in value in addition to digits
None Solo el elemento digits .The digits element only.
AllowDecimalPoint Los elementos de separador decimal (.) y dígitos fraccionarios .The decimal point (.) and fractional-digits elements.
AllowExponent El carácter "e" o "E", que indica la notación exponencial, junto con exponential_digits.The "e" or "E" character, which indicates exponential notation, along with exponential_digits.
AllowLeadingWhite Elemento WS al principio de value.The ws element at the start of value.
AllowTrailingWhite Elemento WS al final de value.The ws element at the end of value.
AllowLeadingSign Elemento de signo situado al principio de value.The sign element at the start of value.
AllowTrailingSign Elemento Sign al final de value.The sign element at the end of value.
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 separador de grupos (,).The group separator (,) element.
AllowCurrencySymbol El elemento Currency ($).The currency ($) element.
Currency Todos los elementos.All elements. Sin embargo, value no pueden representar un número hexadecimal o un número en notación exponencial.However, value cannot represent a hexadecimal number or a number in exponential notation.
Float El elemento WS al principio o al final de value, firmar al principio de valuey el símbolo de separador decimal (.).The ws element at the start or end of value, sign at the start of value, and the decimal point (.) symbol. El parámetro value también puede usar la notación exponencial.The value parameter can also use exponential notation.
Number Los elementos ws, sign, separador de grupos (,) y separador decimal (.).The ws, sign, group separator (,), and decimal point (.) elements.
Any Todos los elementos.All elements. Sin embargo, value no puede representar un número hexadecimal.However, value cannot represent a hexadecimal number.

Importante

Si usa el método Parse para realizar un recorrido de ida y vuelta por la representación en forma de cadena de un valor BigInteger que la salida del método ToString, debe usar el método BigInteger.ToString(String) con el especificador de formato "R" para generar la representación de cadena del valor BigInteger.If you use the Parse method to round-trip the string representation of a BigInteger value that was output by the ToString method, you should use the BigInteger.ToString(String) method with the "R" format specifier to generate the string representation of the BigInteger value. De lo contrario, la representación de cadena del BigInteger conserva solo los dígitos 50 más significativos del valor original, y los datos pueden perderse cuando se usa el método Parse para restaurar el valor de BigInteger.Otherwise, the string representation of the BigInteger preserves only the 50 most significant digits of the original value, and data may be lost when you use the Parse method to restore the BigInteger value.

A diferencia de los otros valores de NumberStyles, que permiten, pero no requieren, la presencia de elementos de estilo concretos en value, el valor de estilo de NumberStyles.AllowHexSpecifier significa que los caracteres numéricos individuales de value se interpretan siempre como caracteres hexadecimales.Unlike the other NumberStyles values, which allow for, but do not require, the presence of particular style elements in value, the NumberStyles.AllowHexSpecifier style value means that the individual numeric characters in value are always interpreted as hexadecimal characters. Los caracteres hexadecimales válidos son 0-9, A-F y a-F.Valid hexadecimal characters are 0-9, A-F, and a-f. Las demás marcas que se pueden combinar con el parámetro style son NumberStyles.AllowLeadingWhite y NumberStyles.AllowTrailingWhite.The only other flags that can be combined with the style parameter are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. (La enumeración NumberStyles incluye un estilo de número compuesto, HexNumber, que incluye ambas marcas de espacio en blanco).(The NumberStyles enumeration includes a composite number style, HexNumber, that includes both white-space flags.)

Nota

Si value es la representación de cadena de un número hexadecimal, no puede ir precedida de ninguna decoración (como 0x o &h) que lo diferencie como un número hexadecimal.If value is the string representation of a hexadecimal number, it cannot be preceded by any decoration (such as 0x or &h) that differentiates it as a hexadecimal number. Esto hace que se produzca un error en la conversión.This causes the conversion to fail.

Si value es una cadena hexadecimal, el método Parse(String, NumberStyles) interpreta value como un número negativo almacenado mediante la representación del complemento de dos si sus dos primeros dígitos hexadecimales son mayores o iguales que 0x80.If value is a hexadecimal string, the Parse(String, NumberStyles) method interprets value as a negative number stored by using two's complement representation if its first two hexadecimal digits are greater than or equal to 0x80. En otras palabras, el método interpreta el bit de orden superior del primer byte en value como el bit de signo.In other words, the method interprets the highest-order bit of the first byte in value as the sign bit. Para asegurarse de que una cadena hexadecimal se interpreta correctamente como un número positivo, el primer dígito de value debe tener un valor de cero.To make sure that a hexadecimal string is correctly interpreted as a positive number, the first digit in value must have a value of zero. Por ejemplo, el método interpreta 0x80 como un valor negativo, pero interpreta 0x080 o 0x0080 como un valor positivo.For example, the method interprets 0x80 as a negative value, but it interprets either 0x080 or 0x0080 as a positive value. En el ejemplo siguiente se muestra la diferencia entre las cadenas hexadecimales que representan valores positivos y negativos.The following example illustrates the difference between hexadecimal strings that represent negative and positive values.

using System;
using System.Globalization;
using System.Numerics;

public class Example
{
   public static void Main()
   {
      string[] hexStrings = { "80", "E293", "F9A2FF", "FFFFFFFF", 
                              "080", "0E293", "0F9A2FF", "0FFFFFFFF",  
                              "0080", "00E293", "00F9A2FF", "00FFFFFFFF" };
      foreach (string hexString in hexStrings)
      {
         BigInteger number = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier);
         Console.WriteLine("Converted 0x{0} to {1}.", hexString, number);
      }         
   }
}
// The example displays the following output:
//       Converted 0x80 to -128.
//       Converted 0xE293 to -7533.
//       Converted 0xF9A2FF to -417025.
//       Converted 0xFFFFFFFF to -1.
//       Converted 0x080 to 128.
//       Converted 0x0E293 to 58003.
//       Converted 0x0F9A2FF to 16360191.
//       Converted 0x0FFFFFFFF to 4294967295.
//       Converted 0x0080 to 128.
//       Converted 0x00E293 to 58003.
//       Converted 0x00F9A2FF to 16360191.
//       Converted 0x00FFFFFFFF to 4294967295.
Imports System.Globalization
Imports System.Numerics

Module Example
   Public Sub Main()
      Dim hexStrings() As String = { "80", "E293", "F9A2FF", "FFFFFFFF", 
                                     "080", "0E293", "0F9A2FF", "0FFFFFFFF",  
                                     "0080", "00E293", "00F9A2FF", "00FFFFFFFF" }
      For Each hexString As String In hexStrings
         Dim number As BigInteger = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier)
         Console.WriteLine("Converted 0x{0} to {1}.", hexString, number)
      Next         
   End Sub
End Module
' The example displays the following output:
'       Converted 0x80 to -128.
'       Converted 0xE293 to -7533.
'       Converted 0xF9A2FF to -417025.
'       Converted 0xFFFFFFFF to -1.
'       Converted 0x080 to 128.
'       Converted 0x0E293 to 58003.
'       Converted 0x0F9A2FF to 16360191.
'       Converted 0x0FFFFFFFF to 4294967295.
'       Converted 0x0080 to 128.
'       Converted 0x00E293 to 58003.
'       Converted 0x00F9A2FF to 16360191.
'       Converted 0x00FFFFFFFF to 4294967295.

El parámetro value se analiza utilizando la información de formato de un objeto NumberFormatInfo que se inicializa para la referencia cultural del sistema actual.The value parameter is parsed by using the formatting information in a NumberFormatInfo object that is initialized for the current system culture. Para especificar la referencia cultural cuya información de formato se utiliza para la operación de análisis, llame a la sobrecarga Parse(String, NumberStyles, IFormatProvider).To specify the culture whose formatting information is used for the parse operation, call the Parse(String, NumberStyles, IFormatProvider) overload.

Consulte también:

Parse(String, IFormatProvider)

Convierte la representación en forma de cadena de un número con el formato específico de la referencia cultural indicada en su BigInteger equivalente.Converts the string representation of a number in a specified culture-specific format to its BigInteger equivalent.

public:
 static System::Numerics::BigInteger Parse(System::String ^ value, IFormatProvider ^ provider);
public static System.Numerics.BigInteger Parse (string value, IFormatProvider provider);
static member Parse : string * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (value As String, provider As IFormatProvider) As BigInteger

Parámetros

value
String

Cadena que contiene un número que se va a convertir.A string that contains a number to convert.

provider
IFormatProvider

Un objeto que proporciona información de formato específica de la referencia cultural sobre value.An object that provides culture-specific formatting information about value.

Devoluciones

Valor equivalente al número especificado en el parámetro value.A value that is equivalent to the number specified in the value parameter.

Excepciones

value es null.value is null.

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

Ejemplos

En los siguientes ejemplos se muestran dos formas de definir la tilde (~) como signo negativo para dar formato BigInteger valores.The following examples show two ways to define the tilde (~) as a negative sign for formatting BigInteger values. Tenga en cuenta que para mostrar los valores de BigInteger en el mismo formato que las cadenas originales, el código debe llamar al método BigInteger.ToString(IFormatProvider) y pasarle el NumberFormatInfo objeto que proporciona información de formato.Note that to display the BigInteger values in the same format as the original strings, your code must call the BigInteger.ToString(IFormatProvider) method and pass it the NumberFormatInfo object that provides formatting information.

En el primer ejemplo se define una clase que implementa IFormatProvider y utiliza el método GetFormat para devolver el objeto NumberFormatInfo que proporciona información de formato.The first example defines a class that implements IFormatProvider and uses the GetFormat method to return the NumberFormatInfo object that provides formatting information.

public class BigIntegerFormatProvider : IFormatProvider
{
   public object GetFormat(Type formatType) 
   {
      if (formatType == typeof(NumberFormatInfo)) 
      {
         NumberFormatInfo numberFormat = new NumberFormatInfo();
         numberFormat.NegativeSign = "~";
         return numberFormat;
      }
      else
      {
         return null;
      }      
   }
}
Public Class BigIntegerFormatProvider : Implements IFormatProvider
   Public Function GetFormat(formatType As Type) As Object _
                            Implements IFormatProvider.GetFormat
      If formatType Is GetType(NumberFormatInfo) Then
         Dim numberFormat As New NumberFormatInfo
         numberFormat.NegativeSign = "~"
         Return numberFormat
      Else
         Return Nothing
      End If      
   End Function
End Class

A continuación, se puede crear una instancia de un objeto BigInteger con el código siguiente:A BigInteger object can then be instantiated with the following code:

BigInteger number = BigInteger.Parse("~6354129876", new BigIntegerFormatProvider());
// Display value using same formatting information
Console.WriteLine(number.ToString(new BigIntegerFormatProvider()));
// Display value using formatting of current culture
Console.WriteLine(number);
Dim number As BigInteger = BigInteger.Parse("~6354129876", New BigIntegerFormatProvider)
' Display value using same formatting information
Console.WriteLine(number.ToString(New BigIntegerFormatProvider))
' Display value using formatting of current culture
Console.WriteLine(number)

El segundo ejemplo es más sencillo.The second example is more straightforward. Pasa el objeto de NumberFormatInfo que proporciona información de formato al parámetro provider.It passes the NumberFormatInfo object that provides formatting information to the provider parameter.

NumberFormatInfo fmt = new NumberFormatInfo();
fmt.NegativeSign = "~";

BigInteger number = BigInteger.Parse("~6354129876", fmt);
// Display value using same formatting information
Console.WriteLine(number.ToString(fmt));
// Display value using formatting of current culture
Console.WriteLine(number);
Dim fmt As New NumberFormatInfo()
fmt.NegativeSign = "~"

Dim number As BigInteger = BigInteger.Parse("~6354129876", fmt)
' Display value using same formatting information
Console.WriteLine(number.ToString(fmt))
' Display value using formatting of current culture
Console.WriteLine(number)

Comentarios

El parámetro value debe ser la representación de cadena de un número con el formato siguiente:The value parameter should be the string representation of a number in the following form:

[WS] [signo] dígitos[WS][ws][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.
signsign Un signo opcional.An optional sign. Los caracteres de signo válidos se determinan mediante las propiedades NumberFormatInfo.NegativeSign y NumberFormatInfo.PositiveSign del objeto NumberFormatInfo devuelto por el método GetFormat del objeto provider.Valid sign characters are determined by the NumberFormatInfo.NegativeSign and NumberFormatInfo.PositiveSign properties of the NumberFormatInfo object that is returned by the provider object's GetFormat method.
digitsdigits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9. Se omiten los ceros a la izquierda.Any leading zeros are ignored.

Nota

La cadena especificada por el parámetro value se interpreta utilizando el estilo de NumberStyles.Integer.The string specified by the value parameter is interpreted using the NumberStyles.Integer style. No puede contener ningún separador de grupo ni separador decimal, y no puede tener una parte decimal.It cannot contain any group separators or decimal separator, and it cannot have a decimal portion.

Importante

Si usa el método Parse para realizar un recorrido de ida y vuelta por la representación en forma de cadena de un valor BigInteger que la salida del método ToString, debe usar el método BigInteger.ToString(String) con el especificador de formato "R" para generar la representación de cadena del valor BigInteger.If you use the Parse method to round-trip the string representation of a BigInteger value that was output by the ToString method, you should use the BigInteger.ToString(String) method with the "R" format specifier to generate the string representation of the BigInteger value. De lo contrario, la representación de cadena del BigInteger conserva solo los dígitos 50 más significativos del valor original, y los datos pueden perderse cuando se usa el método Parse para restaurar el valor de BigInteger.Otherwise, the string representation of the BigInteger preserves only the 50 most significant digits of the original value, and data may be lost when you use the Parse method to restore the BigInteger value.

El parámetro provider es una implementación de IFormatProvider cuyo método GetFormat devuelve un objeto NumberFormatInfo que proporciona información de formato específica de la referencia cultural.The provider parameter is an IFormatProvider implementation whose GetFormat method returns a NumberFormatInfo object that provides culture-specific formatting information. Cuando se invoca el método de Parse(String, IFormatProvider), llama al método GetFormat del parámetro provider y le pasa un objeto Type que representa el tipo NumberFormatInfo.When the Parse(String, IFormatProvider) method is invoked, it calls the provider parameter's GetFormat method and passes it a Type object that represents the NumberFormatInfo type. A continuación, el método GetFormat devuelve el objeto NumberFormatInfo que proporciona información sobre el formato del parámetro value.The GetFormat method then returns the NumberFormatInfo object that provides information about the format of the value parameter. Hay tres maneras de usar el parámetro provider para proporcionar información de formato personalizada a la operación de análisis:There are three ways to use the provider parameter to supply custom formatting information to the parse operation:

  • Puede pasar un objeto CultureInfo que represente la referencia cultural que proporciona información de formato.You can pass a CultureInfo object that represents the culture that supplies formatting information. Su método GetFormat devuelve el objeto NumberFormatInfo que proporciona información de formato numérico para esa referencia cultural.Its GetFormat method returns the NumberFormatInfo object that provides numeric formatting information for that culture.

  • Puede pasar el objeto de NumberFormatInfo real que proporciona información de formato numérico.You can pass the actual NumberFormatInfo object that provides numeric formatting information. (Su implementación de GetFormat simplemente se devuelve).(Its implementation of GetFormat just returns itself.)

  • Puede pasar un objeto personalizado que implementa IFormatProvider.You can pass a custom object that implements IFormatProvider. Su método GetFormat crea una instancia de y devuelve el objeto NumberFormatInfo que proporciona información de formato.Its GetFormat method instantiates and returns the NumberFormatInfo object that provides formatting information.

Si se null``provider, el formato de value se interpreta basándose en el objeto NumberFormatInfo de la referencia cultural actual.If provider is null, the formatting of value is interpreted based on the NumberFormatInfo object of the current culture.

Consulte también:

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Convierte la representación de un número, incluida en el intervalo de solo lectura especificado de caracteres, en un estilo especificado en su equivalente BigInteger.Converts the representation of a number, contained in the specified read-only span of characters, in a specified style to its BigInteger equivalent.

public static System.Numerics.BigInteger Parse (ReadOnlySpan<char> value, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (value As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = null) As BigInteger

Parámetros

value
ReadOnlySpan<Char>

Intervalo de solo lectura de caracteres que contiene el número que se va a convertir.A read-only span of characters that contains the number to convert.

style
NumberStyles

Combinación bit a bit de los valores de enumeración que especifican el formato permitido de value.A bitwise combination of the enumeration values that specify the permitted format of value.

provider
IFormatProvider

Un objeto que proporciona información de formato específica de la referencia cultural sobre value.An object that provides culture-specific formatting information about value.

Devoluciones

Valor equivalente al número especificado en el parámetro value.A value that is equivalent to the number specified in the value parameter.

Excepciones

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

O bien-or- style incluye la marca AllowHexSpecifier o HexNumber junto con otro valor.style includes the AllowHexSpecifier or HexNumber flag along with another value.

value es null.value is null.

value no cumple el modelo de entrada especificado por style.value does not comply with the input pattern specified by style.

Comentarios

El parámetro style define los elementos de estilo (como el espacio en blanco, el símbolo de signo positivo o negativo, el símbolo del separador de grupo o el símbolo de separador decimal) que se permiten en el parámetro value para que la operación de análisis se realice correctamente.The style parameter defines the style elements (such as white space, the positive or negative sign symbol, the group separator symbol, or the decimal point symbol) that are allowed in the value parameter for the parse operation to succeed. styles debe ser una combinación de marcas de bits de la enumeración NumberStyles.styles must be a combination of bit flags from the NumberStyles enumeration. El parámetro style hace que esta sobrecarga de método resulte útil cuando value contiene la representación de un valor hexadecimal, cuando el sistema de números (decimal o hexadecimal) representado por value solo se conoce en tiempo de ejecución o cuando se desea impedir el espacio en blanco o un símbolo de signo en value.The style parameter makes this method overload useful when value contains the representation of a hexadecimal value, when the number system (decimal or hexadecimal) represented by value is known only at run time, or when you want to disallow white space or a sign symbol in value.

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

[WS] [$] [signo] [dígitos,] dígitos[. Fractional_digits] [E [signo]exponential_digits] [WS][ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]

Si style incluye NumberStyles.AllowHexSpecifier, el parámetro value puede incluir los siguientes elementos:If style includes NumberStyles.AllowHexSpecifier, the value parameter may include the following elements:

[WS] hexdigits[WS][ws]hexdigits[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 de value si style incluye la marca NumberStyles.AllowLeadingWhite y puede aparecer al final de value si style incluye la marca NumberStyles.AllowTrailingWhite.White space can appear at the start of value if style includes the NumberStyles.AllowLeadingWhite flag, and it can appear at the end of value 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 value se define mediante las propiedades NumberFormatInfo.CurrencyNegativePattern y NumberFormatInfo.CurrencyPositivePattern de la referencia cultural indicada por el parámetro provider.Its position in value is defined by the NumberFormatInfo.CurrencyNegativePattern and NumberFormatInfo.CurrencyPositivePattern properties of the culture indicated by the provider parameter. El símbolo de divisa de la referencia cultural actual puede aparecer en value si style incluye la marca NumberStyles.AllowCurrencySymbol.The current culture's currency symbol can appear in value if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Un signo opcional.An optional sign. El signo puede aparecer al principio de value si style incluye la marca NumberStyles.AllowLeadingSign y puede aparecer al final de value si style incluye la marca NumberStyles.AllowTrailingSign.The sign can appear at the start of value if style includes the NumberStyles.AllowLeadingSign flag, and it can appear at the end of value if style includes the NumberStyles.AllowTrailingSign flag. Se pueden usar paréntesis en value para indicar un valor negativo si style incluye la marca NumberStyles.AllowParentheses.Parentheses can be used in value to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
digitsdigits

fractional_digitsfractional_digits

exponential_digitsexponential_digits
Secuencia de dígitos del 0 al 9.A sequence of digits from 0 through 9. Por fractional_digits, solo el dígito 0 es válido.For fractional_digits, only the digit 0 is valid.
,, Un símbolo de separador de grupos específico de la referencia cultural.A culture-specific group separator symbol. El símbolo de separador de grupos de la referencia cultural especificada por provider puede aparecer en value si style incluye la marca NumberStyles.AllowThousands.The group separator symbol of the culture specified by provider can appear in value 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 cultural designada por provider puede aparecer en value si style incluye la marca NumberStyles.AllowDecimalPoint.The decimal point symbol of the culture designated by provider can appear in value if style includes the NumberStyles.AllowDecimalPoint flag. Solo el dígito 0 puede aparecer como dígito fraccionario para que la operación de análisis se realice correctamente; Si fractional_digits incluye cualquier otro dígito, se produce una FormatException.Only the digit 0 can appear as a fractional digit for the parse operation to succeed; if fractional_digits includes any other digit, a FormatException is thrown.
EE El carácter "e" o "E", que indica que el valor se representa en notación exponencial (científica).The "e" or "E" character, which indicates that the value is represented in exponential (scientific) notation. El parámetro value puede representar un número en notación exponencial si style incluye la marca NumberStyles.AllowExponent.The value parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
hexdigitshexdigits Secuencia de dígitos hexadecimales de 0 a f, o de 0 a F.A sequence of hexadecimal digits from 0 through f, or 0 through F.

Nota

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

Un value solo con dígitos (que corresponde al estilo NumberStyles.None) siempre se analiza correctamente.A value with digits only (which corresponds to the NumberStyles.None style) always parses successfully. La mayoría de los miembros de la NumberStyles restantes controlan los elementos que pueden estar presentes, pero que no es necesario que estén presentes, en value.Most of the remaining NumberStyles members control elements that may be present, but are not required to be present, in value. En la tabla siguiente se indica cómo los miembros de NumberStyles individuales afectan a los elementos que pueden estar presentes en value.The following table indicates how individual NumberStyles members affect the elements that may be present in value.

Valor NumberStylesNumberStyles value Elementos permitidos en el valor además de dígitosElements permitted in value in addition to digits
None Solo el elemento digits .The digits element only.
AllowDecimalPoint Los elementos de separador decimal (.) y dígitos fraccionarios .The decimal point (.) and fractional-digits elements.
AllowExponent El carácter "e" o "E", que indica la notación exponencial.The "e" or "E" character, which indicates exponential notation. junto con exponential_digits.along with exponential_digits.
AllowLeadingWhite Elemento WS al principio de value.The ws element at the start of value.
AllowTrailingWhite Elemento WS al final de value.The ws element at the end of value.
AllowLeadingSign Elemento de signo situado al principio de value.The sign element at the start of value.
AllowTrailingSign Elemento Sign al final de value.The sign element at the end of value.
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 separador de grupos (,).The group separator (,) element.
AllowCurrencySymbol El elemento Currency ($).The currency ($) element.
Currency Todos los elementos.All elements. Sin embargo, value no pueden representar un número hexadecimal o un número en notación exponencial.However, value cannot represent a hexadecimal number or a number in exponential notation.
Float El elemento WS al principio o al final de value, firmar al principio de valuey el símbolo de separador decimal (.).The ws element at the start or end of value, sign at the start of value, and the decimal point (.) symbol. El parámetro value también puede usar la notación exponencial.The value parameter can also use exponential notation.
Number Los elementos ws, sign, separador de grupos (,) y separador decimal (.).The ws, sign, group separator (,), and decimal point (.) elements.
Any Todos los elementos.All elements. Sin embargo, value no puede representar un número hexadecimal.However, value cannot represent a hexadecimal number.

A diferencia de los otros valores de NumberStyles, que permiten, pero no requieren la presencia de elementos de estilo concretos en value, el valor de estilo de NumberStyles.AllowHexSpecifier significa que los caracteres numéricos individuales de value se interpretan siempre como caracteres hexadecimales.Unlike the other NumberStyles values, which allow for but do not require the presence of particular style elements in value, the NumberStyles.AllowHexSpecifier style value means that the individual numeric characters in value are always interpreted as hexadecimal characters. Los caracteres hexadecimales válidos son 0-9, A-F y a-F.Valid hexadecimal characters are 0-9, A-F, and a-f. Las demás marcas que se pueden combinar con el parámetro style son NumberStyles.AllowLeadingWhite y NumberStyles.AllowTrailingWhite.The only other flags that can be combined with the style parameter are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. (La enumeración NumberStyles incluye un estilo de número compuesto, HexNumber, que incluye ambas marcas de espacio en blanco).(The NumberStyles enumeration includes a composite number style, HexNumber, that includes both white-space flags.)

El parámetro provider es una implementación de IFormatProvider.The provider parameter is an IFormatProvider implementation. Su método GetFormat devuelve un objeto NumberFormatInfo que proporciona información específica de la referencia cultural sobre el formato de value.Its GetFormat method returns a NumberFormatInfo object that provides culture-specific information about the format of value. Normalmente, provider puede ser cualquiera de los siguientes:Typically, provider can be any one of the following:

Si provider es null, se utiliza el objeto de NumberFormatInfo para la referencia cultural actual.If provider is null, the NumberFormatInfo object for the current culture is used.

Consulte también:

Parse(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 su equivalente de BigInteger .Converts the string representation of a number in a specified style and culture-specific format to its BigInteger equivalent.

public:
 static System::Numerics::BigInteger Parse(System::String ^ value, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public static System.Numerics.BigInteger Parse (string value, System.Globalization.NumberStyles style, IFormatProvider provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (value As String, style As NumberStyles, provider As IFormatProvider) As BigInteger

Parámetros

value
String

Cadena que contiene un número que se va a convertir.A string that contains a number to convert.

style
NumberStyles

Combinación bit a bit de los valores de enumeración que especifican el formato permitido de value.A bitwise combination of the enumeration values that specify the permitted format of value.

provider
IFormatProvider

Un objeto que proporciona información de formato específica de la referencia cultural sobre value.An object that provides culture-specific formatting information about value.

Devoluciones

Valor equivalente al número especificado en el parámetro value.A value that is equivalent to the number specified in the value parameter.

Excepciones

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

O bien-or- style incluye la marca AllowHexSpecifier o HexNumber junto con otro valor.style includes the AllowHexSpecifier or HexNumber flag along with another value.

value es null.value is null.

value no cumple el modelo de entrada especificado por style.value does not comply with the input pattern specified by style.

Ejemplos

En el ejemplo siguiente se realizan varias llamadas al método Parse(String, NumberStyles, IFormatProvider) con varias combinaciones de valores para los parámetros style y provider.The following example makes several calls to the Parse(String, NumberStyles, IFormatProvider) method using various combinations of values for the style and provider parameters.

// Call parse with default values of style and provider
Console.WriteLine(BigInteger.Parse("  -300   ", 
                  NumberStyles.Integer, CultureInfo.CurrentCulture));
// Call parse with default values of style and provider supporting tilde as negative sign
Console.WriteLine(BigInteger.Parse("   ~300  ", 
                                   NumberStyles.Integer, new BigIntegerFormatProvider()));
// Call parse with only AllowLeadingWhite and AllowTrailingWhite
// Exception thrown because of presence of negative sign
try
{
   Console.WriteLine(BigInteger.Parse("    ~300   ", 
                                NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite, 
                                new BigIntegerFormatProvider()));
}
catch (FormatException e)
{
   Console.WriteLine("{0}: \n   {1}", e.GetType().Name, e.Message);
}                                   
// Call parse with only AllowHexSpecifier
// Exception thrown because of presence of negative sign
try
{
   Console.WriteLine(BigInteger.Parse("-3af", NumberStyles.AllowHexSpecifier, 
                                      new BigIntegerFormatProvider()));
}
catch (FormatException e)
{
   Console.WriteLine("{0}: \n   {1}", e.GetType().Name, e.Message);
}                                 
// Call parse with only NumberStyles.None
// Exception thrown because of presence of white space and sign
try
{
   Console.WriteLine(BigInteger.Parse(" -300 ", NumberStyles.None, 
                                      new BigIntegerFormatProvider()));
}
catch (FormatException e)
{
   Console.WriteLine("{0}: \n   {1}", e.GetType().Name, e.Message);
}
// The example displays the followingoutput:
//       -300
//       -300
//       FormatException:
//          The value could not be parsed.
//       FormatException:
//          The value could not be parsed.
//       FormatException:
//          The value could not be parsed.      
' Call parse with default values of style and provider
Console.WriteLine(BigInteger.Parse("  -300   ", _
                  NumberStyles.Integer, CultureInfo.CurrentCulture))
' Call parse with default values of style and provider supporting tilde as negative sign
Console.WriteLine(BigInteger.Parse("   ~300  ", _
                                   NumberStyles.Integer, New BigIntegerFormatProvider()))
' Call parse with only AllowLeadingWhite and AllowTrailingWhite
' Exception thrown because of presence of negative sign
Try
   Console.WriteLIne(BigInteger.Parse("    ~300   ", _
                                      NumberStyles.AllowLeadingWhite Or NumberStyles.AllowTrailingWhite, _
                                      New BigIntegerFormatProvider()))
Catch e As FormatException
   Console.WriteLine("{0}: {1}   {2}", e.GetType().Name, vbCrLf, e.Message)
End Try                                   
' Call parse with only AllowHexSpecifier
' Exception thrown because of presence of negative sign
Try
   Console.WriteLIne(BigInteger.Parse("-3af", NumberStyles.AllowHexSpecifier, _
                                      New BigIntegerFormatProvider()))
Catch e As FormatException
   Console.WriteLine("{0}: {1}   {2}", e.GetType().Name, vbCrLf, e.Message)
End Try                                 
' Call parse with only NumberStyles.None
' Exception thrown because of presence of white space and sign
Try
   Console.WriteLIne(BigInteger.Parse(" -300 ", NumberStyles.None, _
                                      New BigIntegerFormatProvider()))
Catch e As FormatException
   Console.WriteLine("{0}: {1}   {2}", e.GetType().Name, vbCrLf, e.Message)
End Try
' The example displays the following output:
'       -300
'       -300
'       FormatException:
'          The value could not be parsed.
'       FormatException:
'          The value could not be parsed.
'       FormatException:
'          The value could not be parsed.            

Varias llamadas individuales al método Parse(String, NumberStyles, IFormatProvider) pasan una instancia de la clase BigIntegerFormatProvider siguiente, que define una tilde (~) como signo negativo.A number of the individual calls to the Parse(String, NumberStyles, IFormatProvider) method pass an instance of the following BigIntegerFormatProvider class, which defines a tilde (~) as the negative sign.

public class BigIntegerFormatProvider : IFormatProvider
{
   public object GetFormat(Type formatType) 
   {
      if (formatType == typeof(NumberFormatInfo)) 
      {
         NumberFormatInfo numberFormat = new NumberFormatInfo();
         numberFormat.NegativeSign = "~";
         return numberFormat;
      }
      else
      {
         return null;
      }      
   }
}
Public Class BigIntegerFormatProvider : Implements IFormatProvider
   Public Function GetFormat(formatType As Type) As Object _
                            Implements IFormatProvider.GetFormat
      If formatType Is GetType(NumberFormatInfo) Then
         Dim numberFormat As New NumberFormatInfo
         numberFormat.NegativeSign = "~"
         Return numberFormat
      Else
         Return Nothing
      End If      
   End Function
End Class

Comentarios

El parámetro style define los elementos de estilo (como el espacio en blanco, el símbolo de signo positivo o negativo, el símbolo del separador de grupo o el símbolo de separador decimal) que se permiten en el parámetro value para que la operación de análisis se realice correctamente.The style parameter defines the style elements (such as white space, the positive or negative sign symbol, the group separator symbol, or the decimal point symbol) that are allowed in the value parameter for the parse operation to succeed. styles debe ser una combinación de marcas de bits de la enumeración NumberStyles.styles must be a combination of bit flags from the NumberStyles enumeration. El parámetro style hace que esta sobrecarga de método resulte útil cuando value contiene la representación de cadena de un valor hexadecimal, cuando el sistema de números (decimal o hexadecimal) representado por value solo se conoce en tiempo de ejecución, o cuando se desea impedir el espacio en blanco o un símbolo de signo en value.The style parameter makes this method overload useful when value contains the string representation of a hexadecimal value, when the number system (decimal or hexadecimal) represented by value is known only at run time, or when you want to disallow white space or a sign symbol in value.

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

[WS] [$] [signo] [dígitos,] dígitos[. Fractional_digits] [E [signo]exponential_digits] [WS][ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]

Si style incluye NumberStyles.AllowHexSpecifier, el parámetro value puede incluir los siguientes elementos:If style includes NumberStyles.AllowHexSpecifier, the value parameter may include the following elements:

[WS] hexdigits[WS][ws]hexdigits[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 de value si style incluye la marca NumberStyles.AllowLeadingWhite y puede aparecer al final de value si style incluye la marca NumberStyles.AllowTrailingWhite.White space can appear at the start of value if style includes the NumberStyles.AllowLeadingWhite flag, and it can appear at the end of value if style includes the NumberStyles.AllowTrailingWhite flag.
$ Un símbolo de divisa específico de la referencia cultural.A culture-specific currency symbol. La posición en la cadena se define mediante las propiedades NumberFormatInfo.CurrencyNegativePattern y NumberFormatInfo.CurrencyPositivePattern de la referencia cultural indicada por el parámetro provider.Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern and NumberFormatInfo.CurrencyPositivePattern properties of the culture indicated by the provider parameter. El símbolo de divisa de la referencia cultural actual puede aparecer en value si style incluye la marca NumberStyles.AllowCurrencySymbol.The current culture's currency symbol can appear in value if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Un signo opcional.An optional sign. El signo puede aparecer al principio de value si style incluye la marca NumberStyles.AllowLeadingSign y puede aparecer al final de value si style incluye la marca NumberStyles.AllowTrailingSign.The sign can appear at the start of value if style includes the NumberStyles.AllowLeadingSign flag, and it can appear at the end of value if style includes the NumberStyles.AllowTrailingSign flag. Se pueden usar paréntesis en value para indicar un valor negativo si style incluye la marca NumberStyles.AllowParentheses.Parentheses can be used in value to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
digitsdigits

fractional_digitsfractional_digits

exponential_digitsexponential_digits
Secuencia de dígitos del 0 al 9.A sequence of digits from 0 through 9. Por fractional_digits, solo el dígito 0 es válido.For fractional_digits, only the digit 0 is valid.
,, Un símbolo de separador de grupos específico de la referencia cultural.A culture-specific group separator symbol. El símbolo de separador de grupos de la referencia cultural especificada por provider puede aparecer en value si style incluye la marca NumberStyles.AllowThousands.The group separator symbol of the culture specified by provider can appear in value 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 cultural designada por provider puede aparecer en value si style incluye la marca NumberStyles.AllowDecimalPoint.The decimal point symbol of the culture designated by provider can appear in value if style includes the NumberStyles.AllowDecimalPoint flag. Solo el dígito 0 puede aparecer como dígito fraccionario para que la operación de análisis se realice correctamente; Si fractional_digits incluye cualquier otro dígito, se produce una FormatException.Only the digit 0 can appear as a fractional digit for the parse operation to succeed; if fractional_digits includes any other digit, a FormatException is thrown.
EE El carácter "e" o "E", que indica que el valor se representa en notación exponencial (científica).The "e" or "E" character, which indicates that the value is represented in exponential (scientific) notation. El parámetro value puede representar un número en notación exponencial si style incluye la marca NumberStyles.AllowExponent.The value parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
hexdigitshexdigits Secuencia de dígitos hexadecimales de 0 a f, o de 0 a F.A sequence of hexadecimal digits from 0 through f, or 0 through F.

Nota

La operación de análisis omite los caracteres NUL (U + 0000) de terminación de s, independientemente del valor del argumento style.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 estilo NumberStyles.None) siempre se analiza correctamente.A string with digits only (which corresponds to the NumberStyles.None style) always parses successfully. La mayoría de los miembros de la NumberStyles restantes controlan los elementos que pueden estar presentes, pero que no es necesario que estén presentes, en la cadena de entrada.Most of the remaining NumberStyles members control elements that may be present, but are not required to be present, in the input string. En la tabla siguiente se indica cómo los miembros de NumberStyles individuales afectan a los elementos que pueden estar presentes en value.The following table indicates how individual NumberStyles members affect the elements that may be present in value.

Valor NumberStylesNumberStyles value Elementos permitidos en el valor además de dígitosElements permitted in value in addition to digits
None Solo el elemento digits .The digits element only.
AllowDecimalPoint Los elementos de separador decimal (.) y dígitos fraccionarios .The decimal point (.) and fractional-digits elements.
AllowExponent El carácter "e" o "E", que indica la notación exponencial.The "e" or "E" character, which indicates exponential notation. junto con exponential_digits.along with exponential_digits.
AllowLeadingWhite Elemento WS al principio de value.The ws element at the start of value.
AllowTrailingWhite Elemento WS al final de value.The ws element at the end of value.
AllowLeadingSign Elemento de signo situado al principio de value.The sign element at the start of value.
AllowTrailingSign Elemento Sign al final de value.The sign element at the end of value.
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 separador de grupos (,).The group separator (,) element.
AllowCurrencySymbol El elemento Currency ($).The currency ($) element.
Currency Todos los elementos.All elements. Sin embargo, value no pueden representar un número hexadecimal o un número en notación exponencial.However, value cannot represent a hexadecimal number or a number in exponential notation.
Float El elemento WS al principio o al final de value, firmar al principio de valuey el símbolo de separador decimal (.).The ws element at the start or end of value, sign at the start of value, and the decimal point (.) symbol. El parámetro value también puede usar la notación exponencial.The value parameter can also use exponential notation.
Number Los elementos ws, sign, separador de grupos (,) y separador decimal (.).The ws, sign, group separator (,), and decimal point (.) elements.
Any Todos los elementos.All elements. Sin embargo, value no puede representar un número hexadecimal.However, value cannot represent a hexadecimal number.

Importante

Si usa el método Parse para realizar un recorrido de ida y vuelta por la representación en forma de cadena de un valor BigInteger que la salida del método ToString, debe usar el método BigInteger.ToString(String) con el especificador de formato "R" para generar la representación de cadena del valor BigInteger.If you use the Parse method to round-trip the string representation of a BigInteger value that was output by the ToString method, you should use the BigInteger.ToString(String) method with the "R" format specifier to generate the string representation of the BigInteger value. De lo contrario, la representación de cadena del BigInteger conserva solo los dígitos 50 más significativos del valor original, y los datos pueden perderse cuando se usa el método Parse para restaurar el valor de BigInteger.Otherwise, the string representation of the BigInteger preserves only the 50 most significant digits of the original value, and data may be lost when you use the Parse method to restore the BigInteger value.

A diferencia de los otros valores de NumberStyles, que permiten, pero no requieren la presencia de elementos de estilo concretos en value, el valor de estilo de NumberStyles.AllowHexSpecifier significa que los caracteres numéricos individuales de value se interpretan siempre como caracteres hexadecimales.Unlike the other NumberStyles values, which allow for but do not require the presence of particular style elements in value, the NumberStyles.AllowHexSpecifier style value means that the individual numeric characters in value are always interpreted as hexadecimal characters. Los caracteres hexadecimales válidos son 0-9, A-F y a-F.Valid hexadecimal characters are 0-9, A-F, and a-f. Las demás marcas que se pueden combinar con el parámetro style son NumberStyles.AllowLeadingWhite y NumberStyles.AllowTrailingWhite.The only other flags that can be combined with the style parameter are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. (La enumeración NumberStyles incluye un estilo de número compuesto, HexNumber, que incluye ambas marcas de espacio en blanco).(The NumberStyles enumeration includes a composite number style, HexNumber, that includes both white-space flags.)

Nota

Si value es la representación de cadena de un número hexadecimal, no puede ir precedida de ninguna decoración (como 0x o &h) que lo diferencie como un número hexadecimal.If value is the string representation of a hexadecimal number, it cannot be preceded by any decoration (such as 0x or &h) that differentiates it as a hexadecimal number. Esto hace que se produzca un error en la conversión.This causes the conversion to fail.

Si value es una cadena hexadecimal, el método Parse(String, NumberStyles) interpreta value como un número negativo almacenado mediante la representación del complemento de dos si sus dos primeros dígitos hexadecimales son mayores o iguales que 0x80.If value is a hexadecimal string, the Parse(String, NumberStyles) method interprets value as a negative number stored by using two's complement representation if its first two hexadecimal digits are greater than or equal to 0x80. En otras palabras, el método interpreta el bit de orden superior del primer byte en value como el bit de signo.In other words, the method interprets the highest-order bit of the first byte in value as the sign bit. Para asegurarse de que una cadena hexadecimal se interpreta correctamente como un número positivo, el primer dígito de value debe tener un valor de cero.To make sure that a hexadecimal string is correctly interpreted as a positive number, the first digit in value must have a value of zero. Por ejemplo, el método interpreta 0x80 como un valor negativo, pero interpreta 0x080 o 0x0080 como un valor positivo.For example, the method interprets 0x80 as a negative value, but it interprets either 0x080 or 0x0080 as a positive value. En el ejemplo siguiente se muestra la diferencia entre las cadenas hexadecimales que representan valores positivos y negativos.The following example illustrates the difference between hexadecimal strings that represent negative and positive values.

using System;
using System.Globalization;
using System.Numerics;

public class Example
{
   public static void Main()
   {
      string[] hexStrings = { "80", "E293", "F9A2FF", "FFFFFFFF", 
                              "080", "0E293", "0F9A2FF", "0FFFFFFFF",  
                              "0080", "00E293", "00F9A2FF", "00FFFFFFFF" };
      foreach (string hexString in hexStrings)
      {
         BigInteger number = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier);
         Console.WriteLine("Converted 0x{0} to {1}.", hexString, number);
      }         
   }
}
// The example displays the following output:
//       Converted 0x80 to -128.
//       Converted 0xE293 to -7533.
//       Converted 0xF9A2FF to -417025.
//       Converted 0xFFFFFFFF to -1.
//       Converted 0x080 to 128.
//       Converted 0x0E293 to 58003.
//       Converted 0x0F9A2FF to 16360191.
//       Converted 0x0FFFFFFFF to 4294967295.
//       Converted 0x0080 to 128.
//       Converted 0x00E293 to 58003.
//       Converted 0x00F9A2FF to 16360191.
//       Converted 0x00FFFFFFFF to 4294967295.
Imports System.Globalization
Imports System.Numerics

Module Example
   Public Sub Main()
      Dim hexStrings() As String = { "80", "E293", "F9A2FF", "FFFFFFFF", 
                                     "080", "0E293", "0F9A2FF", "0FFFFFFFF",  
                                     "0080", "00E293", "00F9A2FF", "00FFFFFFFF" }
      For Each hexString As String In hexStrings
         Dim number As BigInteger = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier)
         Console.WriteLine("Converted 0x{0} to {1}.", hexString, number)
      Next         
   End Sub
End Module
' The example displays the following output:
'       Converted 0x80 to -128.
'       Converted 0xE293 to -7533.
'       Converted 0xF9A2FF to -417025.
'       Converted 0xFFFFFFFF to -1.
'       Converted 0x080 to 128.
'       Converted 0x0E293 to 58003.
'       Converted 0x0F9A2FF to 16360191.
'       Converted 0x0FFFFFFFF to 4294967295.
'       Converted 0x0080 to 128.
'       Converted 0x00E293 to 58003.
'       Converted 0x00F9A2FF to 16360191.
'       Converted 0x00FFFFFFFF to 4294967295.

El parámetro provider es una implementación de IFormatProvider.The provider parameter is an IFormatProvider implementation. Su método GetFormat devuelve un objeto NumberFormatInfo que proporciona información específica de la referencia cultural sobre el formato de value.Its GetFormat method returns a NumberFormatInfo object that provides culture-specific information about the format of value. Normalmente, provider puede ser cualquiera de los siguientes:Typically, provider can be any one of the following:

Si provider es null, se utiliza el objeto de NumberFormatInfo para la referencia cultural actual.If provider is null, the NumberFormatInfo object for the current culture is used.

Consulte también:

Se aplica a