Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Metodo Decimal.Parse (String, IFormatProvider)

Converte la rappresentazione di stringa di un numero nell'equivalente Decimal utilizzando le informazioni di formato specifiche delle impostazioni cultura selezionate.

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

public static decimal Parse(
	string s,
	IFormatProvider provider
)

Parametri

s
Tipo: System.String
Rappresentazione di stringa del numero da convertire.
provider
Tipo: System.IFormatProvider
Oggetto IFormatProvider che fornisce informazioni di analisi specifiche delle impostazioni cultura relative a s.

Valore restituito

Tipo: System.Decimal
Il numero Decimal equivalente al numero contenuto in s come specificato da provider.

EccezioneCondizione
ArgumentNullException

s è null.

FormatException

s non è nel formato corretto

OverflowException

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

Questo overload del metodo Parse(String, IFormatProvider) viene utilizzato in genere per convertire un testo che può essere formattato in diversi modi in un valore Decimal. Ad esempio, può essere utilizzato per convertire in un valore numerico il testo immesso da un utente in una casella di testo HTML.

Il parametro s contiene un numero nella forma:

[sv][segno][cifre,]cifre[.cifre-frazionarie][sv]

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

Elemento

Descrizione

sv

Spazio vuoto facoltativo.

sign

Segno facoltativo.

cifre

Sequenza di cifre comprese tra 0 e 9.

,

Simbolo di separatore delle migliaia specifico delle impostazioni cultura.

.

Simbolo di separatore decimale specifico delle impostazioni cultura.

cifre frazionarie

Sequenza di cifre comprese tra 0 e 9.

Il parametro s viene interpretato utilizzando lo stile NumberStyles.Number. Ciò significa, ad esempio, che spazi vuoti e separatori delle migliaia sono consentiti mentre i simboli di valuta non lo sono. Per definire in modo esplicito gli elementi (ad esempio simboli di valuta, separatori delle migliaia e spazio vuoto) che possono essere presenti in s, utilizzare il metodo Decimal.Parse(String, NumberStyles, IFormatProvider).

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

Oggetto Decimal con 29 cifre di precisione. Se s rappresenta un numero che ha più di 29 cifre, ma con una parte frazionaria, ed è compreso tra MaxValue e MinValue, il numero verrà arrotondato, non troncato, a 29 cifre utilizzando l'arrotondamento al più vicino.

Se viene rilevato un separatore nel parametro s durante un'operazione di analisi e la valuta applicabile o i separatori decimali e di gruppo del numero sono gli stessi, nell'operazione di analisi si presume che il separatore sia un separatore decimale anziché di gruppo. Per ulteriori informazioni sui separatori, vedere CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator e NumberGroupSeparator.

L'esempio seguente è il gestore eventi del clic sui pulsanti di un Web Form. Utilizza la matrice restituita dalla proprietà HttpRequest.UserLanguages per determinare le impostazioni locali dell'utente. Crea quindi un'istanza di un oggetto CultureInfo corrispondente alle suddette impostazioni locali. L'oggetto NumberFormatInfo appartenente all'oggetto CultureInfo viene quindi passato al metodo Parse(String, IFormatProvider) per convertire l'input dell'utente in un valore Decimal.


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


.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

.NET per applicazioni Windows Phone

Supportato in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft