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

 

Data di pubblicazione: ottobre 2016

Converte la rappresentazione di stringa di un numero in uno stile specificato e in un formato specifico delle impostazioni cultura nel numero a virgola mobile a precisione singola 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,
	NumberStyles style,
	IFormatProvider provider,
	out float result
)

Parametri

s
Type: System.String

Stringa che rappresenta un numero da convertire.

style
Type: System.Globalization.NumberStyles

Combinazione bit per bit di valori di enumerazione che indica il formato consentito di s. Un valore tipico da specificare è NumberStyles.Float combinato con NumberStyles.AllowThousands.

provider
Type: System.IFormatProvider

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

result
Type: System.Single

Quando questo metodo viene restituito, contiene il numero a virgola mobile a precisione singola equivalente al valore numerico o al simbolo contenuto in 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 presenta un formato conforme a style, rappresenta un numero minore di Single.MinValue o maggiore di Single.MaxValue o se style non è una combinazione valida di costanti enumerate dell'oggetto NumberStyles. 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.

Exception Condition
ArgumentException

style non è un valore di NumberStyles.

-oppure-

style è il valore di NumberStyles.AllowHexSpecifier.

Questo overload differisce dal Parse(String, NumberStyles, IFormatProvider) 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 verificare la presenza di un FormatException nel caso in cui s non è valido e non può essere analizzato correttamente.

Il style parametro definisce il formato consentito del s parametro per l'operazione di analisi abbia esito positivo. Deve essere una combinazione di flag di bit del NumberStyles enumerazione. Le operazioni seguenti NumberStyles membri non sono supportati:

Il s parametro può contenere PositiveInfinitySymbol, NegativeInfinitySymbol, NaNSymbol per le impostazioni cultura indicate da provider. Inoltre, a seconda del valore di style, s parametro può includere gli elementi seguenti:

[ws] [$] [accesso] [cifre integrali,] cifre integrali [. cifre frazionarie] [[accesso] e cifre esponenziali] [ws]

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

Elemento

Descrizione

ws

Spazio vuoto facoltativo. Gli spazi vuoti possono essere visualizzati all'inizio di s se style include il NumberStyles.AllowLeadingWhite flag. Può essere visualizzato alla fine di s se style include il NumberStyles.AllowTrailingWhite flag.

$

Un simbolo di valuta delle impostazioni cultura specifiche. La posizione nella stringa è definita dal NumberFormatInfo.CurrencyNegativePattern o NumberFormatInfo.CurrencyPositivePattern le proprietà del NumberFormatInfo oggetto restituito dal IFormatProvider.GetFormat metodo il provider parametro. Il simbolo di valuta può essere visualizzati s se style include il NumberStyles.AllowCurrencySymbol flag.

segno

Un segno facoltativo. Il segno può essere visualizzati all'inizio di s se style include il NumberStyles.AllowLeadingSign flag e può apparire alla fine di s se style include il NumberStyles.AllowTrailingSign flag. Le parentesi possono essere utilizzate s per indicare un valore negativo se style include il NumberStyles.AllowParentheses flag.

cifre integrali

Una serie di cifre comprese tra 0 e 9 che specificano la parte integrale del numero. Cifre integrali possono essere assente se vi sono cifre frazionarie.

,

Specifiche delle impostazioni cultura migliaia simbolo di separatore. Migliaia di cultura correnti simbolo di separatore può essere presente in s se style include il NumberStyles.AllowThousands flag.

.

Simbolo di separatore decimale delle impostazioni cultura specifiche. Simbolo di separatore decimale della lingua corrente può essere visualizzati s se style include il NumberStyles.AllowDecimalPoint flag.

cifre frazionarie

Una serie di cifre comprese tra 0 e 9 che specificano la parte frazionaria del numero. Cifre frazionarie possono essere visualizzati s se style include il NumberStyles.AllowDecimalPoint flag.

h

Il carattere e o E, che indica che s può rappresentare un numero utilizzando la notazione esponenziale. Il s parametro può rappresentare un numero in notazione esponenziale se style include il NumberStyles.AllowExponent flag.

cifre esponenziali.

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

Una stringa che contiene solo cifre (che corrisponde alla NumberStyles.None stile) viene sempre analizzata correttamente. Le restanti System.Globalization.NumberStyles membri controllano gli elementi che possono essere ma non devono essere presenti nella stringa di input. Nella tabella seguente indica come singoli NumberStyles flag interessano gli elementi che possono essere presenti in s.

Valore NumberStyles

Elementi consentiti in s oltre alle cifre

None

Il cifre integrali solo l'elemento.

AllowDecimalPoint

Il . e cifre frazionarie elementi.

AllowExponent

Il s parametro inoltre possibile utilizzare la notazione esponenziale. Il flag supporta valori nel formato cifre integraliEcifre esponenziali; altri flag sono necessari per analizzare correttamente le stringhe in notazione esponenziale con elementi quali segno positivo o negativo e simboli del separatore decimale.

AllowLeadingWhite

Il ws elemento all'inizio di s.

AllowTrailingWhite

Il ws elemento alla fine di s.

AllowLeadingSign

Il sign elemento all'inizio di s.

AllowTrailingSign

Il sign elemento alla fine di s.

AllowParentheses

Il sign elemento sotto forma di parentesi che racchiudono il valore numerico.

AllowThousands

Il , elemento.

AllowCurrencySymbol

Il $ elemento.

Currency

Tutti. Il s parametro non può rappresentare un numero esadecimale o un numero in notazione esponenziale.

Float

Il ws elemento all'inizio o alla fine di s, sign all'inizio di se . simbolo. Il s parametro inoltre possibile utilizzare la notazione esponenziale.

Number

Il ws, sign, migliaia separatore (,), e punto decimale (.) elementi.

Any

Tutti gli stili, ad eccezione di s può rappresentare un numero esadecimale.

Il provider parametro è un IFormatProvider implementazione cui GetFormat metodo restituisce un NumberFormatInfo oggetto che fornisce informazioni di formattazione specifiche delle impostazioni cultura. Quando il TryParse(String, NumberStyles, IFormatProvider, Single) 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 di 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, la formattazione di s viene interpretato in base il NumberFormatInfo oggetto delle impostazioni cultura correnti.

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 seguente viene illustrato l'utilizzo di Single.TryParse(String, NumberStyles, IFormatProvider, Single) metodo per analizzare la rappresentazione di stringa di numeri che hanno uno stile specifico e vengono formattati utilizzando le convenzioni delle impostazioni cultura specifiche.

string value;
System.Globalization.NumberStyles style;
System.Globalization.CultureInfo culture;
float number;

// Parse currency value using en-GB culture.
value = "�1,097.63";
style = System.Globalization.NumberStyles.Number | 
        System.Globalization.NumberStyles.AllowCurrencySymbol;
culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-GB");
if (Single.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);

value = "1345,978";
style = System.Globalization.NumberStyles.AllowDecimalPoint;
culture = System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR");
if (Single.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);

value = "1.345,978";
style = System.Globalization.NumberStyles.AllowDecimalPoint | 
        System.Globalization.NumberStyles.AllowThousands;
culture = System.Globalization.CultureInfo.CreateSpecificCulture("es-ES");
if (Single.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);

value = "1 345,978";
if (Single.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// The example displays the following output:
//       Converted '�1,097.63' to 1097.63.
//       Converted '1345,978' to 1345.978.
//       Converted '1.345,978' to 1345.978.
//       Unable to convert '1 345,978'.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 2.0
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: