Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Double.TryParse (String, Double)

 

Converte la rappresentazione in forma di stringa di un numero nel rispettivo numero in virgola mobile a precisione doppia equivalente. Un valore restituito indica se la conversione è riuscita o meno.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

public static bool TryParse(
	string s,
	out double result
)

Parametri

s
Type: System.String

Una stringa contenente un numero da convertire.

result
Type: System.Double

Al momento della restituzione, questo metodo contiene il numero a virgola mobile a precisione doppia equivalente al parametro s, se la conversione ha esito positivo oppure zero se la conversione non riesce. La conversione non viene eseguita se il parametro s è null o String.Empty, non è un numero in formato valido o rappresenta un numero minore di MinValue o maggiore di MaxValue. Questo parametro viene passato non inizializzato. Qualsiasi valore fornito in origine in result verrà sovrascritto.

Valore restituito

Type: System.Boolean

true se s è stato convertito correttamente; in caso contrario, false.

Questo overload differisce di Double.Parse(String) metodo restituendo un valore booleano che indica se l'operazione di analisi è riuscita anziché restituire il valore numerico analizzato. Elimina la necessità di utilizzare la gestione delle eccezioni per testare un FormatException nel caso in cui s non è valido e non può essere analizzato correttamente.

Il s parametro può contenere le impostazioni cultura correnti NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, NumberFormatInfo.NaNSymbol (il confronto di stringhe è tra maiuscole e minuscole), o una stringa nel formato:

[ws] [segno] [cifre integrali,] cifre integrali [. [ cifre frazionarie]] [e [segno] cifre esponenziali] [sv]

Gli elementi racchiusa tra parentesi quadre sono facoltativi. Nella tabella seguente viene descritto ogni elemento.

Elemento

Descrizione

sv

Una serie di spazi vuoti.

segno

Un segno negativo o un simbolo di segno positivo.

cifre intere

Una serie di caratteri numerici compresi tra 0 e 9 che specificano la parte intera del numero. Cifre integrali possono non essere presenti se sono presenti cifre frazionarie.

,

Un simbolo di separatore di un gruppo specifico delle impostazioni di cultura.

Verificare il backup quando è finito.

Un simbolo di separatore decimale specifico delle impostazioni di cultura.

cifre frazionarie

Una serie di caratteri numerici compresi tra 0 e 9 che specificano la parte frazionaria del numero.

E

Un carattere maiuscolo o minuscolo 'e', che indica la notazione esponenziale (scientifica).

cifre esponenziali

Una serie di caratteri numerici compresi tra 0 e 9 che specificano un esponente.

Per ulteriori informazioni sui formati numerici, vedere Formattazione di tipi in .NET Framework.

Il s parametro viene interpretato utilizzando una combinazione della NumberStyles.Float e NumberStyles.AllowThousands flag. Ciò significa che lo spazio vuoto e delle migliaia sono consentiti i separatori ma non sono simboli di valuta. Per definire in modo esplicito gli elementi (ad esempio i simboli di valuta, migliaia, gli spazi vuoti e separatori) che possono essere presenti in s, utilizzare il Double.TryParse(String, NumberStyles, IFormatProvider, Double) overload del metodo.

Il s parametro viene analizzato utilizzando le informazioni di formattazione in un NumberFormatInfo oggetto inizializzato per la lingua corrente. Per altre informazioni, vedere NumberFormatInfo.CurrentInfo. Per analizzare una stringa utilizzando le informazioni di formattazione di un altro specificato dalle impostazioni cultura, utilizzare il Double.TryParse(String, NumberStyles, IFormatProvider, Double) overload del metodo.

In genere, se si passa il Double.TryParse metodo una stringa che viene creato chiamando il Double.ToString originale, metodo Double viene restituito. Tuttavia, a causa di una perdita di precisione, i valori potrebbero non essere uguali. Inoltre, il tentativo di analizzare la rappresentazione di stringa di MinValue o MaxValue Genera un OverflowException, come illustrato nell'esempio seguente.

using System;

public class Example
{
   public static void Main()
   {
      string value;
      double number;

      value = Double.MinValue.ToString();
      if (Double.TryParse(value, out number))
         Console.WriteLine(number);
      else
         Console.WriteLine("{0} is outside the range of a Double.", 
                           value);

      value = Double.MaxValue.ToString();
      if (Double.TryParse(value, out number))
         Console.WriteLine(number);
      else
         Console.WriteLine("{0} is outside the range of a Double.",
                           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.            

Se viene rilevato un separatore nel s parametro durante un'operazione di analisi e i separatori decimali e di gruppo sono gli stessi, l'operazione di analisi si presuppone che il separatore è un separatore decimale anziché un separatore di gruppo. Per ulteriori informazioni sui separatori, vedere CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, e NumberGroupSeparator.

Nell'esempio seguente viene utilizzata la TryParse(String, Double) metodo per convertire le rappresentazioni di stringa di valori numerici per Double i valori. Si presuppone che en-US è la lingua corrente.

using System;

public class Example
{
   public static void Main()
   {
      string[] values = { "1,643.57", "$1,643.57", "-1.643e6", 
                          "-168934617882109132", "123AE6", 
                          null, String.Empty, "ABCDEF" };
      double number;

      foreach (var value in values) {
         if (Double.TryParse(value, out number)) 
            Console.WriteLine("'{0}' --> {1}", value, number);
         else
            Console.WriteLine("Unable to parse '{0}'.", value);      
      }   
   }
}
// The example displays the following output:
//       '1,643.57' --> 1643.57
//       Unable to parse '$1,643.57'.
//       '-1.643e6' --> -1643000
//       '-168934617882109132' --> -1.68934617882109E+17
//       Unable to parse '123AE6'.
//       Unable to parse ''.
//       Unable to parse ''.
//       Unable to parse 'ABCDEF'.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 2.0
Portable Class Library
Supportato in: portable .NET platforms
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: