Parse Metodo (String, IFormatProvider)
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 in forma di stringa di un numero nel suo equivalente Decimal utilizzando le informazioni di formato specifiche delle impostazioni di cultura selezionate.

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

public static decimal Parse(
	string s,
	IFormatProvider provider
)

Parametri

s

La rappresentazione in forma di stringa del numero da convertire.

provider

Un oggetto IFormatProvider che fornisce informazioni di analisi specifiche delle impostazioni di cultura relative a s.

Valore restituito

Type: System.Decimal

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

Exception Condition
ArgumentNullException

s è null.

FormatException

s non è nel formato corretto

OverflowException

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

This overload of the Parse(String, IFormatProvider) method is commonly used to convert text that can be formatted in a variety of ways to a Decimal value.For example, it can be used to convert the text entered by a user into an HTML text box to a numeric value.

Il parametro s contiene un numero nella forma:

[ws][sign][digits,]digits[.fractional-digits][ws]

Elements in square brackets ([ and ]) are optional.The following table describes each element.

Element

Description

sv

Optional white space.

segno

Un segno facoltativo.

cifre

Una sequenza di cifre comprese tra 0 e 9.

,

Un simbolo di separatore delle migliaia specifico delle impostazioni di cultura.

.

Un simbolo di separatore decimale specifico delle impostazioni di cultura.

cifre frazionarie

Una sequenza di cifre comprese tra 0 e 9.

Il parametro s viene interpretato utilizzando lo stile NumberStyles.Number. This means that white space and thousands separators are allowed but currency symbols are not. 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 dell'interfaccia IFormatProvider, come un oggetto NumberFormatInfo o CultureInfo. Il parametro provider fornisce informazioni specifiche delle impostazioni di cultura utilizzate nell'analisi. Se provider è null, verranno utilizzate le impostazioni di cultura correnti del thread.

A Decimal object has 29 digits of precision. 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 le proprietà CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator e NumberGroupSeparator.

L'esempio seguente è il gestore dell'evento click sui pulsanti di un Web Form. It uses the array returned by the HttpRequest.UserLanguages property to determine the user's locale.It then instantiates a CultureInfo object that corresponds to that locale.The NumberFormatInfo object that belongs to that CultureInfo object is then passed to the Parse(String, IFormatProvider) method to convert the user's input to a Decimal value.

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();
}

Universal Windows Platform
Disponibile da 4.5
.NET Framework
Disponibile da 1.1
Portable Class Library
Supportato in: portable .NET platforms
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra:
© 2016 Microsoft