Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Double.Parse, méthode (String, IFormatProvider)

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.

ExceptionCondition
ArgumentNullException

s a la valeur null.

FormatException

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

OverflowException

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

Cette surcharge de la méthode Parse(String, IFormatProvider) est généralement utilisée pour convertir du texte qui peut être mis en forme de diverses manières en une valeur Double. Par exemple, elle peut être utilisée pour convertir le texte entré par un utilisateur dans une zone de texte HTML en valeur numérique.

Le paramètre s est interprété à l'aide d'une combinaison des indicateurs NumberStyles.Float et NumberStyles.AllowThousands. Le paramètre s peut contenir les symboles NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol ou NumberFormatInfo.NaNSymbol de la culture spécifiée par provider, ou une chaîne au format suivant :

[ws] [signe] chiffres intégraux[.[chiffres fractionnaires]] [E [signe] chiffres exponentiels] [ws]

Les éléments facultatifs sont encadrés par des crochets ([ et ]). Les éléments contenant le terme "chiffres" consistent en une série de caractères numériques compris entre 0 et 9.

Élément

Description

ws

Série d'espaces blancs.

sign

Symbole négatif (-) ou positif (+).

chiffres intégraux

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

.

Symbole de séparateur décimal spécifique à la culture.

chiffres fractionnaires

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

E

Caractère « e » ou « E », qui indique que la valeur est représentée en notation exponentielle (scientifique).

chiffres exponentiels

Série des chiffres allant de 0 à 9 qui spécifie un exposant.

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

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

D'ordinaire, si vous passez à la méthode Double.Parse une chaîne qui est créée en appelant la méthode Double.ToString, la valeur Double d'origine est retournée. Toutefois, en raison d'une perte de précision, les valeurs peuvent être différentes. En outre, une tentative d'analyse de la représentation sous forme de chaîne de 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 paramètre s au cours d'une opération d'analyse et que la devise ou le nombre décimal applicables 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 illustre le gestionnaire d'événements du clic de bouton d'un formulaire Web. Il utilise le tableau retourné par la propriété HttpRequest.UserLanguages pour déterminer les paramètres régionaux de l'utilisateur. Il instancie ensuite un objet CultureInfo qui correspond à ces paramètres régionaux. L'objet NumberFormatInfo qui appartient à cet objet CultureInfo est ensuite passé à la méthode Parse(String, IFormatProvider) afin de convertir l'entrée de l'utilisateur en une valeur Double.


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 (Exception)
   {
      return;
   }
   // Output number to label on web form
   this.outputNumber.Text = "Number is " + number.ToString();
}


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft