Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Double.Parse méthode (String, IFormatProvider)

 

Date de publication : novembre 2016

Convertit la représentation sous forme de chaîne d'un nombre dans un format propre à la culture spécifié en nombre à virgule flottante double précision équivalent.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)

public static double Parse(
	string s,
	IFormatProvider provider
)

Paramètres

s
Type: System.String

Chaîne contenant un nombre à convertir.

provider
Type: System.IFormatProvider

Objet qui fournit des informations de mise en forme propres à la culture sur s.

Valeur de retour

Type: System.Double

Nombre à virgule flottante double précision équivalant à la valeur numérique ou au symbole spécifié dans s.

Exception Condition
ArgumentNullException

s a la valeur null.

FormatException

s ne représente pas un nombre dans un format valide.

OverflowException

s représente un nombre qui est inférieur à MinValue ou supérieur à MaxValue.

Cette surcharge de la Parse(String, IFormatProvider) méthode est généralement utilisée pour convertir du texte qui peut être mis en forme de différentes façons pour un Double valeur. Par exemple, il peut être utilisé pour convertir le texte entré par un utilisateur dans une zone de texte HTML à une valeur numérique.

Le s paramètre est interprété à l’aide d’une combinaison de la NumberStyles.Float et NumberStyles.AllowThousands indicateurs. Le s paramètre peut contenir NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, ou NumberFormatInfo.NaNSymbol pour la culture spécifiée par provider, ou il peut contenir une chaîne sous la forme :

[ws][sign]integral-digits[. [chiffres fractionnaires]] [E [signe]chiffres exponentiels] [ws]

Éléments facultatifs sont encadrés par des crochets ([et]). Les éléments qui contiennent le terme « chiffres » sont constitués d’une série de chiffres allant de 0 à 9.

Élément

Description

ws

Une série de caractères d’espace blanc.

sign

Un symbole négatif (-) ou un signe positif (+) de symboles.

chiffres intégraux

Une série de chiffres allant de 0 à 9 qui spécifie la partie entière du nombre. S’exécute de chiffres intégraux peuvent être partitionnées par un symbole de séparateur de groupes. Par exemple, dans certaines cultures une virgule (,) sépare les groupes de milliers. Le chiffres intégraux élément peut être absent si la chaîne contient la chiffres fractionnaires élément.

.

Un symbole décimal spécifiques à la culture.

chiffres fractionnaires

Une série de chiffres allant de 0 à 9 qui spécifie la partie fractionnaire du nombre.

E

Le « e » ou un caractère « E », ce qui indique que la valeur est représentée dans la notation exponentielle (scientifique).

chiffres exponentiels

Une série de chiffres allant de 0 à 9 qui spécifie un exposant.

Pour plus d’informations sur les formats numériques, consultez la Mise en forme des types dans .NET Framework rubrique.

Le provider paramètre est un IFormatProvider implémentation dont GetFormat méthode retourne un NumberFormatInfo objet qui fournit des informations spécifiques à la culture utilisées pour interpréter le format de s. En règle générale, il est un NumberFormatInfo ou CultureInfo objet. Si provider est null ou un NumberFormatInfo ne peut pas être obtenu, les informations de mise en forme pour la culture système en cours est utilisée.

En règle générale, si vous passez le Double.Parse méthode une chaîne qui est créé en appelant le Double.ToString , la méthode Double valeur est retournée. Toutefois, en raison d’une perte de précision, les valeurs ne peuvent pas être égales. En outre, une tentative d’analyser la représentation sous forme de chaîne d’un MinValue ou MaxValue lève une OverflowException, comme l’illustre l’exemple suivant.

   string value;

   value = Double.MinValue.ToString();
   try {
      Console.WriteLine(Double.Parse(value));
   }   
   catch (OverflowException) {
      Console.WriteLine("{0} is outside the range of the Double type.",
                        value);
   }

   value = Double.MaxValue.ToString();
   try {
      Console.WriteLine(Double.Parse(value));
   }
   catch (OverflowException) {
      Console.WriteLine("{0} is outside the range of the Double type.",
                        value);
   }
// The example displays the following output:
//    -1.79769313486232E+308 is outside the range of the Double type.
//    1.79769313486232E+308 is outside the range of the Double type.

Si un séparateur est rencontré dans le s paramètre pendant une opération d’analyse et la devise ou un nombre décimal et les séparateurs de groupes sont identiques, l’opération d’analyse suppose que le séparateur est un séparateur décimal plutôt qu’un séparateur de groupes. Pour plus d’informations sur les séparateurs, consultez CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, et NumberGroupSeparator.

L’exemple suivant est le bouton sur le Gestionnaire d’événements d’un formulaire Web. Il utilise le tableau retourné par la HttpRequest.UserLanguages propriété pour déterminer les paramètres régionaux de l’utilisateur. Il instancie ensuite un CultureInfo objet qui correspond à ces paramètres régionaux. Le NumberFormatInfo objet qui appartient à cet CultureInfo objet est ensuite transmis à la Parse(String, IFormatProvider) d’entrée de méthode pour convertir l’utilisateur à un Double valeur.

protected void OkToDouble_Click(object sender, EventArgs e)
{
   string locale;
   double number;
   CultureInfo culture;

   // Return if string is empty
   if (String.IsNullOrEmpty(this.inputNumber.Text))
      return;

   // Get locale of web request to determine possible format of number
   if (Request.UserLanguages.Length == 0)
      return;
   locale = Request.UserLanguages[0];
   if (String.IsNullOrEmpty(locale))
      return;

  // Instantiate CultureInfo object for the user's locale
   culture = new CultureInfo(locale);

   // Convert user input from a string to a number
   try
   {
      number = Double.Parse(this.inputNumber.Text, culture.NumberFormat);
   }
   catch (FormatException)
   {
      return;
   }
   catch (OverflowException)
   {
      return;
   }
   // Output number to label on web form
   this.outputNumber.Text = "Number is " + number.ToString();
}

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: