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.Parse (String)

 

Data di pubblicazione: ottobre 2016

Converte la rappresentazione di stringa di un numero nel rispettivo numero a virgola mobile e precisione doppia equivalente.

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

public static double Parse(
	string s
)

Parametri

s
Type: System.String

Stringa che contiene un numero da convertire.

Valore restituito

Type: System.Double

Numero a virgola mobile a precisione doppia equivalente al valore numerico o al simbolo specificato in s.

Exception Condition
ArgumentNullException

s è null.

FormatException

s non rappresenta un numero in formato valido.

OverflowException

L'oggetto s rappresenta un numero minore di MinValue o maggiore di MaxValue.

Il s parametro può contenere le impostazioni cultura correnti NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, NumberFormatInfo.NaNSymbol, o una stringa nel formato:

[ws][sign][integral-digits[,]]integral-digits[. [cifre frazionarie]] [E [sign]cifre esponenziali] [ws]

Gli elementi tra parentesi quadre ([e]) sono facoltativi. Nella tabella seguente viene descritto ogni elemento.

Elemento

Descrizione

ws

Una serie di spazi vuoti.

segno

Simbolo di segno negativo (-) o un simbolo di segno positivo (+). Può essere utilizzato solo con un segno iniziale.

cifre integrali

Una serie di cifre comprese tra 0 e 9 che specificano la parte integrale del numero. Viene eseguito cifre integrali possibile partizionare un simbolo di separatore di gruppi. In alcune impostazioni cultura, ad esempio, una virgola (,) separa delle migliaia. Il cifre integrali elemento può essere assente se la stringa contiene la cifre frazionarie elemento.

,

Specifiche delle impostazioni cultura migliaia simbolo di separatore.

.

Simbolo di separatore decimale delle impostazioni cultura specifiche.

cifre frazionarie

Una serie di cifre comprese tra 0 e 9 che specificano la parte frazionaria del numero.

E

Il "e" o il carattere "E", che indica che il valore è rappresentato nella notazione esponenziale (scientifica).

cifre esponenziali.

Una serie di cifre comprese tra 0 e 9 che specificano un esponente.

Il s parametro viene interpretato utilizzando una combinazione del NumberStyles.Float e NumberStyles.AllowThousands flag. Ciò significa che lo spazio vuoto e delle migliaia sono consentiti i separatori, ad esempio, sebbene non siano simboli di valuta. Per maggiore certezza che lo stile di elementi consentiti in s per l'operazione di analisi abbia esito positivo, chiamare il Double.Parse(String, NumberStyles) o Double.Parse(String, NumberStyles, IFormatProvider) metodo.

Il s parametro viene interpretato utilizzando le informazioni di formattazione in un NumberFormatInfo oggetto inizializzato per impostazioni cultura del thread corrente. Per altre informazioni, vedere CurrentInfo. Per analizzare una stringa utilizzando le informazioni di formattazione di altre impostazioni cultura, chiamare il Double.Parse(String, IFormatProvider) o Double.Parse(String, NumberStyles, IFormatProvider) metodo.

In genere, se si passa il Double.Parse metodo una stringa che viene creata chiamando il Double.ToString (metodo), originale 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.

   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.

Se viene rilevato un separatore nel s parametro durante un'operazione di analisi e la valuta applicabile o il numero decimale e separatori di gruppi sono uguali, l'operazione di analisi si presume che il separatore è un separatore decimale, anziché un separatore di gruppi. Per ulteriori informazioni sui separatori, vedere CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, e NumberGroupSeparator.

Nell'esempio riportato di seguito viene illustrato l'utilizzo del metodo Parse(String).

public class Temperature {
	// Parses the temperature from a string in form
	// [ws][sign]digits['F|'C][ws]
	public static Temperature Parse(string s) {
		Temperature temp = new Temperature();

		if( s.TrimEnd(null).EndsWith("'F") ) {
			temp.Value = Double.Parse( s.Remove(s.LastIndexOf('\''), 2) );
		}
		else if( s.TrimEnd(null).EndsWith("'C") ) {
			temp.Celsius = Double.Parse( s.Remove(s.LastIndexOf('\''), 2) );
		}
		else {
			temp.Value = Double.Parse(s);
		}

		return temp;
	}

	// The value holder
	protected double m_value;

	public double Value {
		get {
			return m_value;
		}
		set {
			m_value = value;
		}
	}

	public double Celsius {
		get {
			return (m_value-32.0)/1.8;
		}
		set {
			m_value = 1.8*value+32.0;
		}
	}
}

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: