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

 

Data di pubblicazione: ottobre 2016

Converte la rappresentazione di stringa di un numero in un determinato formato specifico delle impostazioni cultura nel numero a virgola mobile a precisione singola equivalente.

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

public static float Parse(
	string s,
	IFormatProvider provider
)

Parametri

s
Type: System.String

Stringa che contiene un numero da convertire.

provider
Type: System.IFormatProvider

Oggetto che fornisce informazioni di formattazione specifiche delle impostazioni cultura relativamente a s.

Valore restituito

Type: System.Single

Numero a virgola mobile a precisione singola 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

s rappresenta un numero minore di MinValue o maggiore di MaxValue.

Questo overload viene in genere utilizzato per convertire un testo che può essere formattato in diversi modi per un Single valore. Ad esempio, può essere utilizzato per convertire il testo immesso dall'utente in una casella di testo HTML in un valore numerico.

Il s parametro viene interpretato utilizzando una combinazione del NumberStyles.Float e NumberStyles.AllowThousands flag. Il s parametro può contenere NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, o NumberFormatInfo.NaNSymbol per impostazioni cultura specificate da provider, oppure può contenere una stringa nel formato:

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

Elementi facoltativi sono racchiuse tra parentesi quadre ([e]). Gli elementi che contengono il termine "cifre" sono costituiti da una serie di caratteri numerici compresi tra 0 e 9.

Elemento

Descrizione

ws

Una serie di spazi vuoti.

segno

Simbolo di segno negativo (-) o un simbolo di segno positivo (+).

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.

.

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.

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

Il provider parametro è un IFormatProvider implementazione cui GetFormat metodo restituisce un NumberFormatInfo oggetto che fornisce informazioni di formattazione specifiche delle impostazioni cultura. Quando il Parse(String, IFormatProvider) metodo viene richiamato, viene chiamato il provider del parametro GetFormat (metodo) e lo passa a un Type oggetto che rappresenta il NumberFormatInfo tipo. Il GetFormat metodo quindi restituisce il NumberFormatInfo oggetto che fornisce informazioni relative al formato del s parametro. Esistono tre modi per utilizzare il provider parametro per fornire informazioni di formattazione personalizzate per l'operazione di analisi:

  • È possibile passare un CultureInfo oggetto che rappresenta le impostazioni cultura che fornisce informazioni di formattazione. Il relativo GetFormat metodo restituisce il NumberFormatInfo oggetto che fornisce informazioni sulla formattazione numeriche per le impostazioni cultura.

  • È possibile passare l'effettivo NumberFormatInfo oggetto che fornisce informazioni sulla formattazione numeriche. (L'implementazione di GetFormat appena restituisce se stesso.)

  • È possibile passare un oggetto personalizzato che implementa IFormatProvider. Il relativo GetFormat metodo crea e restituisce il NumberFormatInfo oggetto che fornisce informazioni di formattazione.

Se provider è null o NumberFormatInfo non è possibile ottenere, le informazioni di formattazione per la lingua corrente viene utilizzata.

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.

Alcuni esempi di s sono "100", "-123,456,789", "123.45 e + 6", "+ 500", "5e2", "3.1416", "600.", "-. 123" e "-Infinity".

L'esempio seguente è il gestore eventi di un Web form click del pulsante. Usa la matrice restituita dal HttpRequest.UserLanguages proprietà per determinare la lingua dell'utente. Crea quindi un CultureInfo oggetto che corrisponde a quella lingua. Il NumberFormatInfo oggetto a cui appartiene che CultureInfo oggetto viene quindi passato al Parse(String, IFormatProvider) input del metodo per convertire l'utente a un Single valore.

protected void OkToSingle_Click(object sender, EventArgs e)
{
   string locale;
   float 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 = Single.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();
}

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: