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

 

Data di pubblicazione: ottobre 2016

Converte la rappresentazione di stringa di un numero nell'oggetto Decimal equivalente usando lo stile specificato e il formato specifico delle impostazioni cultura. 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 decimal result
)

Parametri

s
Type: System.String

Rappresentazione di stringa del 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 è Number.

provider
Type: System.IFormatProvider

Oggetto che fornisce informazioni di analisi specifiche delle impostazioni cultura relative a s.

result
Type: System.Decimal

Quando questo metodo restituisce un risultato, contiene il numero Decimal che è equivalente al valore numerico contenuto in s, se la conversione è stata eseguita correttamente oppure è uguale a zero se la conversione non è riuscita. La conversione non riesce se il parametro s è null o String.Empty non presenta un formato conforme a style 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.

Exception Condition
ArgumentException

style non è un valore di NumberStyles.

-oppure-

style è il valore di AllowHexSpecifier.

Questo overload differisce dal Decimal.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:

A seconda del valore di stile, la s parametro può includere gli elementi seguenti:

[ws] [$] [accesso] [cifre,] cifre [cifre frazionarie] [[accesso] e cifre] [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.

cifre

Una sequenza di cifre comprese tra 0 e 9.

.

Simbolo di separatore decimale delle impostazioni cultura specifiche.

cifre frazionarie

Una sequenza di cifre comprese tra 0 e 9.

Il style parametro specifica il formato consentito del s parametro e può essere uno o più NumberStyles costanti enumerate combinate tramite un'operazione OR bit per bit. Se style è null, s viene interpretato utilizzando il NumberStyles.Number stile.

Il provider parametro è un IFormatProvider implementazione, ad esempio un NumberFormatInfo o CultureInfo oggetto. Il provider parametro fornisce le informazioni specifiche delle impostazioni cultura utilizzate nell'analisi. Se provider è null, verranno usate le impostazioni cultura correnti del thread.

Oggetto Decimal oggetto con 29 cifre di precisione. Se s rappresenta un numero che ha più di 29 cifre, ma ha una parte frazionaria e all'interno dell'intervallo di MaxValue e MinValue, il numero viene arrotondato, non troncato, a 29 cifre, al valore più vicino.

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 del TryParse(String, NumberStyles, IFormatProvider, Decimal) metodo per analizzare la rappresentazione di stringa di un numero che dispone di uno stile specifico e viene formattato utilizzando le convenzioni delle impostazioni cultura specifiche.

string value;
NumberStyles style;
CultureInfo culture;
decimal number;

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

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

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

value = "1 345,978";
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       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: