BigInteger.Parse Méthode

Définition

Convertit la représentation sous forme de chaîne d'un nombre en sa représentation BigInteger équivalente.Converts the string representation of a number to its BigInteger equivalent.

Surcharges

Parse(String)

Convertit la représentation sous forme de chaîne d'un nombre en sa représentation BigInteger équivalente.Converts the string representation of a number to its BigInteger equivalent.

Parse(String, NumberStyles)

Convertit la représentation d'un nombre sous forme de chaîne dans un style spécifié en son équivalent BigInteger .Converts the string representation of a number in a specified style to its BigInteger equivalent.

Parse(String, IFormatProvider)

Convertit la représentation sous forme de chaîne d'un nombre, ayant un format spécifique à la culture spécifié, en sa représentation BigInteger équivalente.Converts the string representation of a number in a specified culture-specific format to its BigInteger equivalent.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Convertit la représentation d’un nombre, contenue dans l’étendue en lecture seule de caractères indiquée, dans un style spécifié en son équivalent 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)

Convertit la représentation sous forme de chaîne d'un nombre, ayant un style et un format propre à la culture spécifiés, en sa représentation BigInteger équivalente.Converts the string representation of a number in a specified style and culture-specific format to its BigInteger equivalent.

Parse(String)

Convertit la représentation sous forme de chaîne d'un nombre en sa représentation BigInteger équivalente.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

Paramètres

value
String

Chaîne contenant le nombre à convertir.A string that contains the number to convert.

Retours

Valeur équivalente au nombre spécifié dans le paramètre value.A value that is equivalent to the number specified in the value parameter.

Exceptions

value a la valeur null.value is null.

Le format devalue est incorrect.value is not in the correct format.

Exemples

L’exemple suivant utilise la méthode Parse(String) pour instancier deux objets BigInteger.The following example uses the Parse(String) method to instantiate two BigInteger objects. Il multiplie chaque objet par un autre nombre, puis appelle la méthode Compare pour déterminer la relation entre les deux valeurs.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.      

Remarques

Le paramètre value doit être la représentation sous forme de chaîne d’un nombre au format suivant.The value parameter should be the string representation of a number in the following form.

[WS] [signe] chiffres[WS][ws][sign]digits[ws]

Les éléments entre crochets ([ et ]) sont facultatifs.Elements in square brackets ([ and ]) are optional. Le tableau suivant décrit chaque élément.The following table describes each element.

ÉlémentElement DescriptionDescription
wsws Espace blanc facultatif.Optional white space.
signsign Signe facultatif.An optional sign. Les caractères de signe valides sont déterminés par les propriétés NumberFormatInfo.NegativeSign et NumberFormatInfo.PositiveSign de la culture actuelle.Valid sign characters are determined by the NumberFormatInfo.NegativeSign and NumberFormatInfo.PositiveSign properties of the current culture.
digitsdigits Séquence de chiffres allant de 0 à 9.A sequence of digits ranging from 0 to 9. Tous les zéros non significatifs sont ignorés.Any leading zeros are ignored.

Notes

La chaîne spécifiée par le paramètre value est interprétée à l’aide du style NumberStyles.Integer.The string specified by the value parameter is interpreted by using the NumberStyles.Integer style. Il ne peut pas contenir de séparateurs de groupe ou de séparateur décimal, et il ne peut pas comporter de partie décimale.It cannot contain any group separators or decimal separator, and it cannot have a decimal portion.

Le paramètre value est analysé à l’aide des informations de mise en forme d’un objet System.Globalization.NumberFormatInfo initialisé pour la culture système en cours.The value parameter is parsed by using the formatting information in a System.Globalization.NumberFormatInfo object that is initialized for the current system culture. Pour plus d’informations, consultez NumberFormatInfo.CurrentInfo.For more information, see NumberFormatInfo.CurrentInfo. Pour analyser une chaîne à l’aide des informations de mise en forme d’une culture spécifique, utilisez la méthode Parse(String, IFormatProvider).To parse a string by using the formatting information of a specific culture, use the Parse(String, IFormatProvider) method.

Important

Si vous utilisez la méthode Parse pour effectuer un aller-retour de la représentation sous forme de chaîne d’une valeur BigInteger qui a été générée par la méthode ToString, vous devez utiliser la méthode BigInteger.ToString(String) avec le spécificateur de format "R" pour générer la représentation sous forme de chaîne de la valeur 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. Dans le cas contraire, la représentation sous forme de chaîne de la BigInteger conserve uniquement les chiffres les plus significatifs de 50 de la valeur d’origine, et les données peuvent être perdues lorsque vous utilisez la méthode Parse pour restaurer la valeur 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.

Voir aussi

Parse(String, NumberStyles)

Convertit la représentation d'un nombre sous forme de chaîne dans un style spécifié en son équivalent BigInteger .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

Paramètres

value
String

Chaîne contenant un nombre à convertir.A string that contains a number to convert.

style
NumberStyles

Combinaison de bits de valeurs d'énumération qui spécifie le format autorisé de value.A bitwise combination of the enumeration values that specify the permitted format of value.

Retours

Valeur équivalente au nombre spécifié dans le paramètre value.A value that is equivalent to the number specified in the value parameter.

Exceptions

style n'est pas un NumberStyles .style is not a NumberStyles value.

-ou--or- style inclut l'indicateur AllowHexSpecifier ou HexNumber avec une autre valeur.style includes the AllowHexSpecifier or HexNumber flag along with another value.

value a la valeur null.value is null.

value ne se conforme pas avec le modèle d'entrée spécifié par NumberStyles.value does not comply with the input pattern specified by NumberStyles.

Exemples

L’exemple suivant illustre les appels à la méthode Parse(String, NumberStyles) avec plusieurs valeurs possibles pour le paramètre style.The following example illustrates calls to the Parse(String, NumberStyles) method with several possible values for the style parameter. Il illustre comment interpréter une chaîne comme une valeur hexadécimale et comment interdire les espaces et les symboles de signe.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.                                                 

Remarques

Le paramètre style définit les éléments de style (tels que les espaces blancs, le symbole de signe positif ou négatif, le symbole de séparateur de groupes ou le symbole de virgule décimale) qui sont autorisés dans le paramètre value pour que l’opération d’analyse aboutisse.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 doit être une combinaison d’indicateurs binaires de l’énumération NumberStyles.styles must be a combination of bit flags from the NumberStyles enumeration. Le paramètre style rend cette surcharge de méthode utile quand value contient la représentation sous forme de chaîne d’une valeur hexadécimale, lorsque le système de nombres (décimal ou hexadécimal) représenté par value est connu uniquement au moment de l’exécution, ou lorsque vous souhaitez interdire l’espace blanc ou un symbole de signe dans 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.

Selon la valeur de style, le paramètre value peut inclure les éléments suivants :Depending on the value of style, the value parameter may include the following elements:

[WS] [$] [signe] [chiffres,] chiffres[.* fractional_digits*] [E [sign]exponential_digits] [WS*][ws][$*][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]

Si style contient des NumberStyles.AllowHexSpecifier, le paramètre value peut contenir les éléments suivants :If style includes NumberStyles.AllowHexSpecifier, the value parameter may contain the following elements:

[WS] hexdigits[WS][ws]hexdigits[ws]

Les éléments entre crochets ([ et ]) sont facultatifs.Elements in square brackets ([ and ]) are optional. Le tableau suivant décrit chaque élément.The following table describes each element.

ÉlémentElement DescriptionDescription
wsws Espace blanc facultatif.Optional white space. Un espace blanc peut apparaître au début de value si style comprend l’indicateur NumberStyles.AllowLeadingWhite et qu’il peut apparaître à la fin de value si style comprend l’indicateur 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.
$ Symbole monétaire propre à la culture.A culture-specific currency symbol. Sa position dans la chaîne est définie par les propriétés NumberFormatInfo.CurrencyNegativePattern et NumberFormatInfo.CurrencyPositivePattern de la culture actuelle.Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern and NumberFormatInfo.CurrencyPositivePattern properties of the current culture. Le symbole monétaire de la culture actuelle peut apparaître dans value si style comprend l’indicateur NumberStyles.AllowCurrencySymbol.The current culture's currency symbol can appear in value if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Signe facultatif.An optional sign. Le signe peut apparaître au début de value si style comprend l’indicateur NumberStyles.AllowLeadingSign et qu’il peut apparaître à la fin de value si style comprend l’indicateur 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. Les parenthèses peuvent être utilisées dans value pour indiquer une valeur négative si style comprend l’indicateur de 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
Séquence de chiffres comprise entre 0 et 9.A sequence of digits from 0 through 9. Pour fractional_digits, seul le chiffre 0 est valide.For fractional_digits, only the digit 0 is valid.
,, Symbole de séparateur de groupe spécifique à la culture.A culture-specific group separator symbol. Le séparateur de groupes de la culture actuelle peut apparaître dans value si style comprend l’indicateur NumberStyles.AllowThousands.The current culture's group separator can appear in value if style includes the NumberStyles.AllowThousands flag.
.. Symbole de virgule décimale propre à la culture.A culture-specific decimal point symbol. Le symbole de virgule décimale de la culture actuelle peut apparaître dans value si style comprend l’indicateur de NumberStyles.AllowDecimalPoint.The current culture's decimal point symbol can appear in value if style includes the NumberStyles.AllowDecimalPoint flag. Seul le chiffre 0 peut apparaître sous la forme d’un chiffre fractionnaire pour que l’opération d’analyse aboutisse. Si fractional_digits comprend un autre chiffre, un FormatException est levé.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 Caractère « e » ou « E », qui indique que la valeur est représentée en notation exponentielle (scientifique).The "e" or "E" character, which indicates that the value is represented in exponential (scientific) notation. Le paramètre value peut représenter un nombre en notation exponentielle si style comprend l’indicateur NumberStyles.AllowExponent.The value parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
hexdigitshexdigits Séquence de chiffres hexadécimaux comprise entre 0 et f, ou 0 et F.A sequence of hexadecimal digits from 0 through f, or 0 through F.

Notes

Les caractères null (U + 0000) de fin dans s sont ignorés par l’opération d’analyse, quelle que soit la valeur de l’argument style.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Une chaîne avec des chiffres uniquement (qui correspond au style de NumberStyles.None) est toujours analysée avec succès.A string with digits only (which corresponds to the NumberStyles.None style) always parses successfully. La plupart des membres restants du NumberStyles contrôlent les éléments qui peuvent être présents, mais qui ne doivent pas être présents, dans la chaîne d’entrée.Most of the remaining NumberStyles members control elements that may be present, but are not required to be present, in the input string. Le tableau suivant indique la manière dont les membres de NumberStyles individuelles affectent les éléments qui peuvent être présents dans value.The following table indicates how individual NumberStyles members affect the elements that may be present in value.

Valeur NumberStylesNumberStyles value Éléments autorisés dans value en plus des chiffresElements permitted in value in addition to digits
None Élément digits uniquement.The digits element only.
AllowDecimalPoint Éléments virgule décimale (.) et chiffres fractionnaires .The decimal point (.) and fractional-digits elements.
AllowExponent Caractère « e » ou « E », qui indique la notation exponentielle, ainsi que les exponential_digits.The "e" or "E" character, which indicates exponential notation, along with exponential_digits.
AllowLeadingWhite Élément WS au début de value.The ws element at the start of value.
AllowTrailingWhite Élément WS à la fin de value.The ws element at the end of value.
AllowLeadingSign Élément signe au début de value.The sign element at the start of value.
AllowTrailingSign Élément signe à la fin de value.The sign element at the end of value.
AllowParentheses Élément de signe sous forme de parenthèses entourant la valeur numérique.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands Élément de séparateur de groupes (,).The group separator (,) element.
AllowCurrencySymbol Élément Currency ($).The currency ($) element.
Currency Tous les éléments.All elements. Toutefois, value ne peut pas représenter un nombre hexadécimal ou un nombre en notation exponentielle.However, value cannot represent a hexadecimal number or a number in exponential notation.
Float L’élément WS au début ou à la fin de valuese connecte au début de valueet au symbole de virgule décimale (.).The ws element at the start or end of value, sign at the start of value, and the decimal point (.) symbol. Le paramètre value peut également utiliser la notation exponentielle.The value parameter can also use exponential notation.
Number Les éléments ws, sign, de séparateur de groupes (,) et de virgule décimale (.).The ws, sign, group separator (,), and decimal point (.) elements.
Any Tous les éléments.All elements. Toutefois, value ne peut pas représenter un nombre hexadécimal.However, value cannot represent a hexadecimal number.

Important

Si vous utilisez la méthode Parse pour effectuer un aller-retour de la représentation sous forme de chaîne d’une valeur BigInteger qui a été générée par la méthode ToString, vous devez utiliser la méthode BigInteger.ToString(String) avec le spécificateur de format "R" pour générer la représentation sous forme de chaîne de la valeur 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. Dans le cas contraire, la représentation sous forme de chaîne de la BigInteger conserve uniquement les chiffres les plus significatifs de 50 de la valeur d’origine, et les données peuvent être perdues lorsque vous utilisez la méthode Parse pour restaurer la valeur 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.

Contrairement aux autres valeurs de NumberStyles, qui autorisent, mais n’ont pas besoin, la présence d’éléments de style particuliers dans value, la valeur de style de NumberStyles.AllowHexSpecifier signifie que les caractères numériques de value sont toujours interprétés comme des caractères hexadécimaux.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. Les caractères hexadécimaux valides sont 0-9, A-F et a-f.Valid hexadecimal characters are 0-9, A-F, and a-f. Les seuls autres indicateurs qui peuvent être combinés avec le paramètre style sont NumberStyles.AllowLeadingWhite et NumberStyles.AllowTrailingWhite.The only other flags that can be combined with the style parameter are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. (L’énumération NumberStyles comprend un style de nombre composite, HexNumber, qui comprend les deux indicateurs d’espace blanc.)(The NumberStyles enumeration includes a composite number style, HexNumber, that includes both white-space flags.)

Notes

Si value est la représentation sous forme de chaîne d’un nombre hexadécimal, il ne peut pas être précédé d’une décoration (telle que 0x ou &h) qui le différencie comme un nombre hexadécimal.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. Cela provoque l’échec de la conversion.This causes the conversion to fail.

Si value est une chaîne hexadécimale, la méthode Parse(String, NumberStyles) interprète value comme un nombre négatif stocké à l’aide de la représentation du complément à deux si ses deux premiers chiffres hexadécimaux sont supérieurs ou égaux à 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 d’autres termes, la méthode interprète le bit d’ordre le plus élevé du premier octet de value comme bit de signe.In other words, the method interprets the highest-order bit of the first byte in value as the sign bit. Pour vous assurer qu’une chaîne hexadécimale est interprétée correctement comme un nombre positif, le premier chiffre dans value doit avoir une valeur de zéro.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. Par exemple, la méthode interprète 0x80 comme une valeur négative, mais elle interprète 0x080 ou 0x0080 comme une valeur positive.For example, the method interprets 0x80 as a negative value, but it interprets either 0x080 or 0x0080 as a positive value. L’exemple suivant illustre la différence entre les chaînes hexadécimales qui représentent des valeurs négatives et positives.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.

Le paramètre value est analysé à l’aide des informations de mise en forme d’un objet NumberFormatInfo initialisé pour la culture système en cours.The value parameter is parsed by using the formatting information in a NumberFormatInfo object that is initialized for the current system culture. Pour spécifier la culture dont les informations de mise en forme sont utilisées pour l’opération d’analyse, appelez la surcharge Parse(String, NumberStyles, IFormatProvider).To specify the culture whose formatting information is used for the parse operation, call the Parse(String, NumberStyles, IFormatProvider) overload.

Voir aussi

Parse(String, IFormatProvider)

Convertit la représentation sous forme de chaîne d'un nombre, ayant un format spécifique à la culture spécifié, en sa représentation BigInteger équivalente.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

Paramètres

value
String

Chaîne contenant un nombre à convertir.A string that contains a number to convert.

provider
IFormatProvider

Objet qui fournit des informations de mise en forme propres à la culture concernant value.An object that provides culture-specific formatting information about value.

Retours

Valeur équivalente au nombre spécifié dans le paramètre value.A value that is equivalent to the number specified in the value parameter.

Exceptions

value a la valeur null.value is null.

Le format devalue est incorrect.value is not in the correct format.

Exemples

Les exemples suivants montrent deux façons de définir le tilde (~) comme signe négatif pour la mise en forme des valeurs BigInteger.The following examples show two ways to define the tilde (~) as a negative sign for formatting BigInteger values. Notez que pour afficher les valeurs de BigInteger dans le même format que les chaînes d’origine, votre code doit appeler la méthode BigInteger.ToString(IFormatProvider) et lui passer l’objet NumberFormatInfo qui fournit des informations de mise en forme.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.

Le premier exemple définit une classe qui implémente IFormatProvider et utilise la méthode GetFormat pour retourner l’objet NumberFormatInfo qui fournit des informations de mise en forme.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

Un objet BigInteger peut ensuite être instancié à l’aide du code suivant :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)

Le deuxième exemple est plus simple.The second example is more straightforward. Elle passe l’objet NumberFormatInfo qui fournit des informations de mise en forme au paramètre 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)

Remarques

Le paramètre value doit être la représentation sous forme de chaîne d’un nombre au format suivant :The value parameter should be the string representation of a number in the following form:

[WS] [signe] chiffres[WS][ws][sign]digits[ws]

Les éléments entre crochets ([ et ]) sont facultatifs.Elements in square brackets ([ and ]) are optional. Le tableau suivant décrit chaque élément.The following table describes each element.

ÉlémentElement DescriptionDescription
wsws Espace blanc facultatif.Optional white space.
signsign Signe facultatif.An optional sign. Les caractères de signe valides sont déterminés par les propriétés NumberFormatInfo.NegativeSign et NumberFormatInfo.PositiveSign de l’objet NumberFormatInfo retourné par la méthode GetFormat de l’objet 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 Séquence de chiffres allant de 0 à 9.A sequence of digits ranging from 0 to 9. Tous les zéros non significatifs sont ignorés.Any leading zeros are ignored.

Notes

La chaîne spécifiée par le paramètre value est interprétée à l’aide du style NumberStyles.Integer.The string specified by the value parameter is interpreted using the NumberStyles.Integer style. Il ne peut pas contenir de séparateurs de groupe ou de séparateur décimal, et il ne peut pas comporter de partie décimale.It cannot contain any group separators or decimal separator, and it cannot have a decimal portion.

Important

Si vous utilisez la méthode Parse pour effectuer un aller-retour de la représentation sous forme de chaîne d’une valeur BigInteger qui a été générée par la méthode ToString, vous devez utiliser la méthode BigInteger.ToString(String) avec le spécificateur de format "R" pour générer la représentation sous forme de chaîne de la valeur 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. Dans le cas contraire, la représentation sous forme de chaîne de la BigInteger conserve uniquement les chiffres les plus significatifs de 50 de la valeur d’origine, et les données peuvent être perdues lorsque vous utilisez la méthode Parse pour restaurer la valeur 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.

Le paramètre provider est une implémentation IFormatProvider dont la méthode GetFormat retourne un objet NumberFormatInfo qui fournit des informations de mise en forme propres à la culture.The provider parameter is an IFormatProvider implementation whose GetFormat method returns a NumberFormatInfo object that provides culture-specific formatting information. Lorsque la méthode Parse(String, IFormatProvider) est appelée, elle appelle la méthode GetFormat du paramètre provider et la passe à un objet Type qui représente le type 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. La méthode GetFormat retourne alors l’objet NumberFormatInfo qui fournit des informations sur le format du paramètre value.The GetFormat method then returns the NumberFormatInfo object that provides information about the format of the value parameter. Il existe trois façons d’utiliser le paramètre provider pour fournir des informations de mise en forme personnalisées à l’opération d’analyse :There are three ways to use the provider parameter to supply custom formatting information to the parse operation:

  • Vous pouvez passer un objet CultureInfo qui représente la culture qui fournit les informations de mise en forme.You can pass a CultureInfo object that represents the culture that supplies formatting information. Sa méthode GetFormat retourne l’objet NumberFormatInfo qui fournit des informations de mise en forme numérique pour cette culture.Its GetFormat method returns the NumberFormatInfo object that provides numeric formatting information for that culture.

  • Vous pouvez passer l’objet NumberFormatInfo réel qui fournit des informations de mise en forme numérique.You can pass the actual NumberFormatInfo object that provides numeric formatting information. (Son implémentation de GetFormat se retourne simplement lui-même.)(Its implementation of GetFormat just returns itself.)

  • Vous pouvez passer un objet personnalisé qui implémente IFormatProvider.You can pass a custom object that implements IFormatProvider. Sa méthode GetFormat instancie et retourne l’objet NumberFormatInfo qui fournit des informations de mise en forme.Its GetFormat method instantiates and returns the NumberFormatInfo object that provides formatting information.

Si provider est null, la mise en forme de value est interprétée en fonction de l’objet NumberFormatInfo de la culture actuelle.If provider is null, the formatting of value is interpreted based on the NumberFormatInfo object of the current culture.

Voir aussi

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Convertit la représentation d’un nombre, contenue dans l’étendue en lecture seule de caractères indiquée, dans un style spécifié en son équivalent 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

Paramètres

value
ReadOnlySpan<Char>

Étendue en lecture seule de caractères qui contient le nombre à convertir.A read-only span of characters that contains the number to convert.

style
NumberStyles

Combinaison de bits de valeurs d'énumération qui spécifie le format autorisé de value.A bitwise combination of the enumeration values that specify the permitted format of value.

provider
IFormatProvider

Objet qui fournit des informations de mise en forme propres à la culture concernant value.An object that provides culture-specific formatting information about value.

Retours

Valeur équivalente au nombre spécifié dans le paramètre value.A value that is equivalent to the number specified in the value parameter.

Exceptions

style n'est pas un NumberStyles .style is not a NumberStyles value.

-ou--or- style inclut l'indicateur AllowHexSpecifier ou HexNumber avec une autre valeur.style includes the AllowHexSpecifier or HexNumber flag along with another value.

value a la valeur null.value is null.

value ne se conforme pas avec le modèle d'entrée spécifié par style.value does not comply with the input pattern specified by style.

Remarques

Le paramètre style définit les éléments de style (tels que les espaces blancs, le symbole de signe positif ou négatif, le symbole de séparateur de groupes ou le symbole de virgule décimale) qui sont autorisés dans le paramètre value pour que l’opération d’analyse aboutisse.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 doit être une combinaison d’indicateurs binaires de l’énumération NumberStyles.styles must be a combination of bit flags from the NumberStyles enumeration. Le paramètre style rend cette surcharge de méthode utile quand value contient la représentation d’une valeur hexadécimale, lorsque le système de nombres (décimal ou hexadécimal) représenté par value est connu uniquement au moment de l’exécution, ou lorsque vous souhaitez interdire l’espace blanc ou un symbole de signe dans 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.

Selon la valeur de style, le paramètre value peut inclure les éléments suivants :Depending on the value of style, the value parameter may include the following elements:

[WS] [$] [signe] [chiffres,] digits[. Fractional_digits] [E [Sign]exponential_digits] [WS][ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]

Si style inclut des NumberStyles.AllowHexSpecifier, le paramètre value peut inclure les éléments suivants :If style includes NumberStyles.AllowHexSpecifier, the value parameter may include the following elements:

[WS] hexdigits[WS][ws]hexdigits[ws]

Les éléments entre crochets ([ et ]) sont facultatifs.Elements in square brackets ([ and ]) are optional. Le tableau suivant décrit chaque élément.The following table describes each element.

ÉlémentElement DescriptionDescription
wsws Espace blanc facultatif.Optional white space. Un espace blanc peut apparaître au début de value si style comprend l’indicateur NumberStyles.AllowLeadingWhite et qu’il peut apparaître à la fin de value si style comprend l’indicateur 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.
$ Symbole monétaire propre à la culture.A culture-specific currency symbol. Sa position dans value est définie par les propriétés NumberFormatInfo.CurrencyNegativePattern et NumberFormatInfo.CurrencyPositivePattern de la culture indiquée par le paramètre provider.Its position in value is defined by the NumberFormatInfo.CurrencyNegativePattern and NumberFormatInfo.CurrencyPositivePattern properties of the culture indicated by the provider parameter. Le symbole monétaire de la culture actuelle peut apparaître dans value si style comprend l’indicateur NumberStyles.AllowCurrencySymbol.The current culture's currency symbol can appear in value if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Signe facultatif.An optional sign. Le signe peut apparaître au début de value si style comprend l’indicateur NumberStyles.AllowLeadingSign et qu’il peut apparaître à la fin de value si style comprend l’indicateur 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. Les parenthèses peuvent être utilisées dans value pour indiquer une valeur négative si style comprend l’indicateur de 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
Séquence de chiffres comprise entre 0 et 9.A sequence of digits from 0 through 9. Pour fractional_digits, seul le chiffre 0 est valide.For fractional_digits, only the digit 0 is valid.
,, Symbole de séparateur de groupe spécifique à la culture.A culture-specific group separator symbol. Le symbole de séparateur de groupes de la culture spécifiée par provider peut apparaître dans value si style comprend l’indicateur NumberStyles.AllowThousands.The group separator symbol of the culture specified by provider can appear in value if style includes the NumberStyles.AllowThousands flag.
.. Symbole de virgule décimale propre à la culture.A culture-specific decimal point symbol. Le symbole de virgule décimale de la culture désignée par provider peut apparaître dans value si style comprend l’indicateur de NumberStyles.AllowDecimalPoint.The decimal point symbol of the culture designated by provider can appear in value if style includes the NumberStyles.AllowDecimalPoint flag. Seul le chiffre 0 peut apparaître sous la forme d’un chiffre fractionnaire pour que l’opération d’analyse aboutisse. Si fractional_digits comprend un autre chiffre, un FormatException est levé.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 Caractère « e » ou « E », qui indique que la valeur est représentée en notation exponentielle (scientifique).The "e" or "E" character, which indicates that the value is represented in exponential (scientific) notation. Le paramètre value peut représenter un nombre en notation exponentielle si style comprend l’indicateur NumberStyles.AllowExponent.The value parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
hexdigitshexdigits Séquence de chiffres hexadécimaux comprise entre 0 et f, ou 0 et F.A sequence of hexadecimal digits from 0 through f, or 0 through F.

Notes

Les caractères null (U + 0000) de fin dans s sont ignorés par l’opération d’analyse, quelle que soit la valeur de l’argument 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 avec des chiffres uniquement (qui correspond au style de NumberStyles.None) est toujours analysé avec succès.A value with digits only (which corresponds to the NumberStyles.None style) always parses successfully. La plupart des membres restants du NumberStyles contrôlent les éléments qui peuvent être présents, mais qui ne doivent pas être présents, dans value.Most of the remaining NumberStyles members control elements that may be present, but are not required to be present, in value. Le tableau suivant indique la manière dont les membres de NumberStyles individuelles affectent les éléments qui peuvent être présents dans value.The following table indicates how individual NumberStyles members affect the elements that may be present in value.

Valeur NumberStylesNumberStyles value Éléments autorisés dans une valeur en plus des chiffresElements permitted in value in addition to digits
None Élément digits uniquement.The digits element only.
AllowDecimalPoint Éléments virgule décimale (.) et chiffres fractionnaires .The decimal point (.) and fractional-digits elements.
AllowExponent Caractère « e » ou « E », qui indique une notation exponentielle.The "e" or "E" character, which indicates exponential notation. avec exponential_digits.along with exponential_digits.
AllowLeadingWhite Élément WS au début de value.The ws element at the start of value.
AllowTrailingWhite Élément WS à la fin de value.The ws element at the end of value.
AllowLeadingSign Élément signe au début de value.The sign element at the start of value.
AllowTrailingSign Élément signe à la fin de value.The sign element at the end of value.
AllowParentheses Élément de signe sous forme de parenthèses entourant la valeur numérique.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands Élément de séparateur de groupes (,).The group separator (,) element.
AllowCurrencySymbol Élément Currency ($).The currency ($) element.
Currency Tous les éléments.All elements. Toutefois, value ne peut pas représenter un nombre hexadécimal ou un nombre en notation exponentielle.However, value cannot represent a hexadecimal number or a number in exponential notation.
Float L’élément WS au début ou à la fin de valuese connecte au début de valueet au symbole de virgule décimale (.).The ws element at the start or end of value, sign at the start of value, and the decimal point (.) symbol. Le paramètre value peut également utiliser la notation exponentielle.The value parameter can also use exponential notation.
Number Les éléments ws, sign, de séparateur de groupes (,) et de virgule décimale (.).The ws, sign, group separator (,), and decimal point (.) elements.
Any Tous les éléments.All elements. Toutefois, value ne peut pas représenter un nombre hexadécimal.However, value cannot represent a hexadecimal number.

Contrairement aux autres valeurs NumberStyles, qui autorisent, mais ne nécessitent pas la présence d’éléments de style particuliers dans value, la valeur de style de NumberStyles.AllowHexSpecifier signifie que les caractères numériques de value sont toujours interprétés comme des caractères hexadécimaux.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. Les caractères hexadécimaux valides sont 0-9, A-F et a-f.Valid hexadecimal characters are 0-9, A-F, and a-f. Les seuls autres indicateurs qui peuvent être combinés avec le paramètre style sont NumberStyles.AllowLeadingWhite et NumberStyles.AllowTrailingWhite.The only other flags that can be combined with the style parameter are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. (L’énumération NumberStyles comprend un style de nombre composite, HexNumber, qui comprend les deux indicateurs d’espace blanc.)(The NumberStyles enumeration includes a composite number style, HexNumber, that includes both white-space flags.)

Le paramètre provider est une implémentation IFormatProvider.The provider parameter is an IFormatProvider implementation. Sa méthode GetFormat retourne un objet NumberFormatInfo qui fournit des informations spécifiques à la culture sur le format de value.Its GetFormat method returns a NumberFormatInfo object that provides culture-specific information about the format of value. En règle générale, provider peut être l’un des éléments suivants :Typically, provider can be any one of the following:

  • Objet CultureInfo qui représente la culture qui fournit des informations de mise en forme numérique.A CultureInfo object that represents the culture that provides numeric formatting information. Sa méthode GetFormat retourne l’objet NumberFormatInfo qui fournit des informations de mise en forme numérique.Its GetFormat method returns the NumberFormatInfo object that provides numeric formatting information.

  • Objet NumberFormatInfo qui fournit des informations de mise en forme.A NumberFormatInfo object that provides formatting information. (Son implémentation de GetFormat se retourne simplement lui-même.)(Its implementation of GetFormat just returns itself.)

  • Objet personnalisé qui implémente IFormatProvider et utilise la méthode GetFormat pour instancier et retourner l’objet NumberFormatInfo qui fournit des informations de mise en forme.A custom object that implements IFormatProvider and uses the GetFormat method to instantiate and return the NumberFormatInfo object that provides formatting information.

Si provider est null, l’objet NumberFormatInfo pour la culture actuelle est utilisé.If provider is null, the NumberFormatInfo object for the current culture is used.

Voir aussi

Parse(String, NumberStyles, IFormatProvider)

Convertit la représentation sous forme de chaîne d'un nombre, ayant un style et un format propre à la culture spécifiés, en sa représentation BigInteger équivalente.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

Paramètres

value
String

Chaîne contenant un nombre à convertir.A string that contains a number to convert.

style
NumberStyles

Combinaison de bits de valeurs d'énumération qui spécifie le format autorisé de value.A bitwise combination of the enumeration values that specify the permitted format of value.

provider
IFormatProvider

Objet qui fournit des informations de mise en forme propres à la culture concernant value.An object that provides culture-specific formatting information about value.

Retours

Valeur équivalente au nombre spécifié dans le paramètre value.A value that is equivalent to the number specified in the value parameter.

Exceptions

style n'est pas un NumberStyles .style is not a NumberStyles value.

-ou--or- style inclut l'indicateur AllowHexSpecifier ou HexNumber avec une autre valeur.style includes the AllowHexSpecifier or HexNumber flag along with another value.

value a la valeur null.value is null.

value ne se conforme pas avec le modèle d'entrée spécifié par style.value does not comply with the input pattern specified by style.

Exemples

L’exemple suivant effectue plusieurs appels à la méthode Parse(String, NumberStyles, IFormatProvider) à l’aide de différentes combinaisons de valeurs pour les paramètres style et 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.            

Un nombre d’appels individuels à la méthode Parse(String, NumberStyles, IFormatProvider) passe une instance de la classe BigIntegerFormatProvider suivante, qui définit un tilde (~) comme signe négatif.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

Remarques

Le paramètre style définit les éléments de style (tels que les espaces blancs, le symbole de signe positif ou négatif, le symbole de séparateur de groupes ou le symbole de virgule décimale) qui sont autorisés dans le paramètre value pour que l’opération d’analyse aboutisse.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 doit être une combinaison d’indicateurs binaires de l’énumération NumberStyles.styles must be a combination of bit flags from the NumberStyles enumeration. Le paramètre style rend cette surcharge de méthode utile quand value contient la représentation sous forme de chaîne d’une valeur hexadécimale, lorsque le système de nombres (décimal ou hexadécimal) représenté par value est connu uniquement au moment de l’exécution, ou lorsque vous souhaitez interdire l’espace blanc ou un symbole de signe dans 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.

Selon la valeur de style, le paramètre value peut inclure les éléments suivants :Depending on the value of style, the value parameter may include the following elements:

[WS] [$] [signe] [chiffres,] digits[. Fractional_digits] [E [Sign]exponential_digits] [WS][ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]

Si style inclut des NumberStyles.AllowHexSpecifier, le paramètre value peut inclure les éléments suivants :If style includes NumberStyles.AllowHexSpecifier, the value parameter may include the following elements:

[WS] hexdigits[WS][ws]hexdigits[ws]

Les éléments entre crochets ([ et ]) sont facultatifs.Elements in square brackets ([ and ]) are optional. Le tableau suivant décrit chaque élément.The following table describes each element.

ÉlémentElement DescriptionDescription
wsws Espace blanc facultatif.Optional white space. Un espace blanc peut apparaître au début de value si style comprend l’indicateur NumberStyles.AllowLeadingWhite et qu’il peut apparaître à la fin de value si style comprend l’indicateur 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.
$ Symbole monétaire propre à la culture.A culture-specific currency symbol. Sa position dans la chaîne est définie par les propriétés NumberFormatInfo.CurrencyNegativePattern et NumberFormatInfo.CurrencyPositivePattern de la culture indiquée par le paramètre provider.Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern and NumberFormatInfo.CurrencyPositivePattern properties of the culture indicated by the provider parameter. Le symbole monétaire de la culture actuelle peut apparaître dans value si style comprend l’indicateur NumberStyles.AllowCurrencySymbol.The current culture's currency symbol can appear in value if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Signe facultatif.An optional sign. Le signe peut apparaître au début de value si style comprend l’indicateur NumberStyles.AllowLeadingSign et qu’il peut apparaître à la fin de value si style comprend l’indicateur 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. Les parenthèses peuvent être utilisées dans value pour indiquer une valeur négative si style comprend l’indicateur de 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
Séquence de chiffres comprise entre 0 et 9.A sequence of digits from 0 through 9. Pour fractional_digits, seul le chiffre 0 est valide.For fractional_digits, only the digit 0 is valid.
,, Symbole de séparateur de groupe spécifique à la culture.A culture-specific group separator symbol. Le symbole de séparateur de groupes de la culture spécifiée par provider peut apparaître dans value si style comprend l’indicateur NumberStyles.AllowThousands.The group separator symbol of the culture specified by provider can appear in value if style includes the NumberStyles.AllowThousands flag.
.. Symbole de virgule décimale propre à la culture.A culture-specific decimal point symbol. Le symbole de virgule décimale de la culture désignée par provider peut apparaître dans value si style comprend l’indicateur de NumberStyles.AllowDecimalPoint.The decimal point symbol of the culture designated by provider can appear in value if style includes the NumberStyles.AllowDecimalPoint flag. Seul le chiffre 0 peut apparaître sous la forme d’un chiffre fractionnaire pour que l’opération d’analyse aboutisse. Si fractional_digits comprend un autre chiffre, un FormatException est levé.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 Caractère « e » ou « E », qui indique que la valeur est représentée en notation exponentielle (scientifique).The "e" or "E" character, which indicates that the value is represented in exponential (scientific) notation. Le paramètre value peut représenter un nombre en notation exponentielle si style comprend l’indicateur NumberStyles.AllowExponent.The value parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
hexdigitshexdigits Séquence de chiffres hexadécimaux comprise entre 0 et f, ou 0 et F.A sequence of hexadecimal digits from 0 through f, or 0 through F.

Notes

Les caractères null (U + 0000) de fin dans s sont ignorés par l’opération d’analyse, quelle que soit la valeur de l’argument style.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Une chaîne avec des chiffres uniquement (qui correspond au style de NumberStyles.None) est toujours analysée avec succès.A string with digits only (which corresponds to the NumberStyles.None style) always parses successfully. La plupart des membres restants du NumberStyles contrôlent les éléments qui peuvent être présents, mais qui ne doivent pas être présents, dans la chaîne d’entrée.Most of the remaining NumberStyles members control elements that may be present, but are not required to be present, in the input string. Le tableau suivant indique la manière dont les membres de NumberStyles individuelles affectent les éléments qui peuvent être présents dans value.The following table indicates how individual NumberStyles members affect the elements that may be present in value.

Valeur NumberStylesNumberStyles value Éléments autorisés dans une valeur en plus des chiffresElements permitted in value in addition to digits
None Élément digits uniquement.The digits element only.
AllowDecimalPoint Éléments virgule décimale (.) et chiffres fractionnaires .The decimal point (.) and fractional-digits elements.
AllowExponent Caractère « e » ou « E », qui indique une notation exponentielle.The "e" or "E" character, which indicates exponential notation. avec exponential_digits.along with exponential_digits.
AllowLeadingWhite Élément WS au début de value.The ws element at the start of value.
AllowTrailingWhite Élément WS à la fin de value.The ws element at the end of value.
AllowLeadingSign Élément signe au début de value.The sign element at the start of value.
AllowTrailingSign Élément signe à la fin de value.The sign element at the end of value.
AllowParentheses Élément de signe sous forme de parenthèses entourant la valeur numérique.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands Élément de séparateur de groupes (,).The group separator (,) element.
AllowCurrencySymbol Élément Currency ($).The currency ($) element.
Currency Tous les éléments.All elements. Toutefois, value ne peut pas représenter un nombre hexadécimal ou un nombre en notation exponentielle.However, value cannot represent a hexadecimal number or a number in exponential notation.
Float L’élément WS au début ou à la fin de valuese connecte au début de valueet au symbole de virgule décimale (.).The ws element at the start or end of value, sign at the start of value, and the decimal point (.) symbol. Le paramètre value peut également utiliser la notation exponentielle.The value parameter can also use exponential notation.
Number Les éléments ws, sign, de séparateur de groupes (,) et de virgule décimale (.).The ws, sign, group separator (,), and decimal point (.) elements.
Any Tous les éléments.All elements. Toutefois, value ne peut pas représenter un nombre hexadécimal.However, value cannot represent a hexadecimal number.

Important

Si vous utilisez la méthode Parse pour effectuer un aller-retour de la représentation sous forme de chaîne d’une valeur BigInteger qui a été générée par la méthode ToString, vous devez utiliser la méthode BigInteger.ToString(String) avec le spécificateur de format "R" pour générer la représentation sous forme de chaîne de la valeur 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. Dans le cas contraire, la représentation sous forme de chaîne de la BigInteger conserve uniquement les chiffres les plus significatifs de 50 de la valeur d’origine, et les données peuvent être perdues lorsque vous utilisez la méthode Parse pour restaurer la valeur 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.

Contrairement aux autres valeurs NumberStyles, qui autorisent, mais ne nécessitent pas la présence d’éléments de style particuliers dans value, la valeur de style de NumberStyles.AllowHexSpecifier signifie que les caractères numériques de value sont toujours interprétés comme des caractères hexadécimaux.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. Les caractères hexadécimaux valides sont 0-9, A-F et a-f.Valid hexadecimal characters are 0-9, A-F, and a-f. Les seuls autres indicateurs qui peuvent être combinés avec le paramètre style sont NumberStyles.AllowLeadingWhite et NumberStyles.AllowTrailingWhite.The only other flags that can be combined with the style parameter are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. (L’énumération NumberStyles comprend un style de nombre composite, HexNumber, qui comprend les deux indicateurs d’espace blanc.)(The NumberStyles enumeration includes a composite number style, HexNumber, that includes both white-space flags.)

Notes

Si value est la représentation sous forme de chaîne d’un nombre hexadécimal, il ne peut pas être précédé d’une décoration (telle que 0x ou &h) qui le différencie comme un nombre hexadécimal.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. Cela provoque l’échec de la conversion.This causes the conversion to fail.

Si value est une chaîne hexadécimale, la méthode Parse(String, NumberStyles) interprète value comme un nombre négatif stocké à l’aide de la représentation du complément à deux si ses deux premiers chiffres hexadécimaux sont supérieurs ou égaux à 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 d’autres termes, la méthode interprète le bit d’ordre le plus élevé du premier octet de value comme bit de signe.In other words, the method interprets the highest-order bit of the first byte in value as the sign bit. Pour vous assurer qu’une chaîne hexadécimale est interprétée correctement comme un nombre positif, le premier chiffre dans value doit avoir une valeur de zéro.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. Par exemple, la méthode interprète 0x80 comme une valeur négative, mais elle interprète 0x080 ou 0x0080 comme une valeur positive.For example, the method interprets 0x80 as a negative value, but it interprets either 0x080 or 0x0080 as a positive value. L’exemple suivant illustre la différence entre les chaînes hexadécimales qui représentent des valeurs négatives et positives.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.

Le paramètre provider est une implémentation IFormatProvider.The provider parameter is an IFormatProvider implementation. Sa méthode GetFormat retourne un objet NumberFormatInfo qui fournit des informations spécifiques à la culture sur le format de value.Its GetFormat method returns a NumberFormatInfo object that provides culture-specific information about the format of value. En règle générale, provider peut être l’un des éléments suivants :Typically, provider can be any one of the following:

  • Objet CultureInfo qui représente la culture qui fournit des informations de mise en forme numérique.A CultureInfo object that represents the culture that provides numeric formatting information. Sa méthode GetFormat retourne l’objet NumberFormatInfo qui fournit des informations de mise en forme numérique.Its GetFormat method returns the NumberFormatInfo object that provides numeric formatting information.

  • Objet NumberFormatInfo qui fournit des informations de mise en forme.A NumberFormatInfo object that provides formatting information. (Son implémentation de GetFormat se retourne simplement lui-même.)(Its implementation of GetFormat just returns itself.)

  • Objet personnalisé qui implémente IFormatProvider et utilise la méthode GetFormat pour instancier et retourner l’objet NumberFormatInfo qui fournit des informations de mise en forme.A custom object that implements IFormatProvider and uses the GetFormat method to instantiate and return the NumberFormatInfo object that provides formatting information.

Si provider est null, l’objet NumberFormatInfo pour la culture actuelle est utilisé.If provider is null, the NumberFormatInfo object for the current culture is used.

Voir aussi

S’applique à