Decimal.TryParse Decimal.TryParse Decimal.TryParse Decimal.TryParse Method

Definizione

Converte la rappresentazione di stringa di un numero nell'oggetto Decimal equivalente.Converts the string representation of a number to its Decimal equivalent. Un valore restituito indica se la conversione è riuscita o meno.A return value indicates whether the conversion succeeded or failed.

Overload

TryParse(String, NumberStyles, IFormatProvider, Decimal) TryParse(String, NumberStyles, IFormatProvider, Decimal) TryParse(String, NumberStyles, IFormatProvider, Decimal) TryParse(String, NumberStyles, IFormatProvider, Decimal)

Converte la rappresentazione di stringa di un numero nell'oggetto Decimal equivalente usando lo stile specificato e il formato specifico delle impostazioni cultura.Converts the string representation of a number to its Decimal equivalent using the specified style and culture-specific format. Un valore restituito indica se la conversione è riuscita o meno.A return value indicates whether the conversion succeeded or failed.

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal) TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal) TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal) TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal)
TryParse(ReadOnlySpan<Char>, Decimal) TryParse(ReadOnlySpan<Char>, Decimal) TryParse(ReadOnlySpan<Char>, Decimal) TryParse(ReadOnlySpan<Char>, Decimal)
TryParse(String, Decimal) TryParse(String, Decimal) TryParse(String, Decimal) TryParse(String, Decimal)

Converte la rappresentazione di stringa di un numero nell'oggetto Decimal equivalente.Converts the string representation of a number to its Decimal equivalent. Un valore restituito indica se la conversione è riuscita o meno.A return value indicates whether the conversion succeeded or failed.

TryParse(String, NumberStyles, IFormatProvider, Decimal) TryParse(String, NumberStyles, IFormatProvider, Decimal) TryParse(String, NumberStyles, IFormatProvider, Decimal) TryParse(String, NumberStyles, IFormatProvider, Decimal)

Converte la rappresentazione di stringa di un numero nell'oggetto Decimal equivalente usando lo stile specificato e il formato specifico delle impostazioni cultura.Converts the string representation of a number to its Decimal equivalent using the specified style and culture-specific format. Un valore restituito indica se la conversione è riuscita o meno.A return value indicates whether the conversion succeeded or failed.

public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out decimal result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider *  -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean

Parametri

s
String String String String

Rappresentazione di stringa del numero da convertire.The string representation of the number to convert.

style
NumberStyles NumberStyles NumberStyles NumberStyles

Combinazione bit per bit di valori di enumerazione che indica il formato consentito di s.A bitwise combination of enumeration values that indicates the permitted format of s. Un valore tipico da specificare è Number.A typical value to specify is Number.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Oggetto che fornisce informazioni di analisi specifiche delle impostazioni cultura relative a s.An object that supplies culture-specific parsing information about s.

result
Decimal Decimal Decimal Decimal

Quando questo metodo restituisce il controllo, 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.When this method returns, contains the Decimal number that is equivalent to the numeric value contained in s, if the conversion succeeded, or zero if the conversion failed. La conversione non viene eseguita se il parametro s è null o Empty non è un numero in un formato conforme a style o rappresenta un numero minore di MinValue o maggiore di MaxValue.The conversion fails if the s parameter is null or Empty, is not a number in a format compliant with style, or represents a number less than MinValue or greater than MaxValue. Questo parametro viene passato non inizializzato. Qualsiasi valore fornito in origine in result viene sovrascritto.This parameter is passed uininitialized; any value originally supplied in result is overwritten.

Restituisce

true se s è stato convertito correttamente; in caso contrario, false.true if s was converted successfully; otherwise, false.

Eccezioni

style non è un valore di NumberStyles.style is not a NumberStyles value.

-oppure--or- style è il valore di AllowHexSpecifier.style is the AllowHexSpecifier value.

Esempi

Nell'esempio seguente viene illustrato l'utilizzo del TryParse(String, NumberStyles, IFormatProvider, Decimal) metodo per analizzare la rappresentazione di stringa di un numero con uno stile specifico che viene formattato usando le convenzioni delle impostazioni cultura specifiche.The following example demonstrates the use of the TryParse(String, NumberStyles, IFormatProvider, Decimal) method to parse the string representation of a number that has a particular style and is formatted using the conventions of a particular culture.

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'.
Dim value As String
Dim style As NumberStyles
Dim culture As CultureInfo
Dim number As Decimal

' Parse currency value using en-GB culture.
value = "£1,097.63"
style = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol
culture = CultureInfo.CreateSpecificCulture("en-GB")
If Decimal.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If    
' 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, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If    
' Displays:
'       Converted '1345,978' to 1345.978.

value = "1.345,978"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands
culture = CultureInfo.CreateSpecificCulture("es-ES")
If Decimal.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If    
' Displays: 
'       Converted '1.345,978' to 1345.978.

value = "1 345,978"
If Decimal.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If    
' Displays:
'       Unable to convert '1 345,978'.

Commenti

Questo overload differisce dal Decimal.Parse(String, NumberStyles, IFormatProvider) metodo restituendo un valore booleano che indica se l'operazione di analisi è stata completata invece di restituire il valore numerico analizzato.This overload differs from the Decimal.Parse(String, NumberStyles, IFormatProvider) method by returning a Boolean value that indicates whether the parse operation succeeded instead of returning the parsed numeric value. Elimina la necessità di usare la gestione delle eccezioni da testare per una FormatException nel caso in cui s non è valido e non può essere analizzata correttamente.It eliminates the need to use exception handling to test for a FormatException in the event that s is invalid and cannot be successfully parsed.

Il style parametro definisce il formato consentito del s parametro per l'operazione di analisi abbia esito positivo.The style parameter defines the allowable format of the s parameter for the parse operation to succeed. Deve essere una combinazione di flag di bit dal NumberStyles enumerazione.It must be a combination of bit flags from the NumberStyles enumeration. Nell'esempio NumberStyles membri non sono supportati:The following NumberStyles members are not supported:

A seconda del valore dello stile, il s parametro può includere gli elementi seguenti:Depending on the value of style, the s parameter may include the following elements:

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

Gli elementi tra parentesi quadre ([e]) sono facoltativi.Elements in square brackets ([ and ]) are optional. La tabella seguente descrive i singoli elementi.The following table describes each element.

ElementoElement DescriptionDescription
wsws Spazio vuoto facoltativo.Optional white space. Gli spazi vuoti possono essere visualizzati all'inizio di s se style include il NumberStyles.AllowLeadingWhite flag.White space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag. Può essere visualizzato in fondo s se style include il NumberStyles.AllowTrailingWhite flag.It can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
$ Un simbolo di valuta delle impostazioni cultura specifiche.A culture-specific currency symbol. La posizione nella stringa è definita dal NumberFormatInfo.CurrencyNegativePattern o NumberFormatInfo.CurrencyPositivePattern delle proprietà del NumberFormatInfo oggetto restituito dal IFormatProvider.GetFormat metodo del provider parametro.Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern or NumberFormatInfo.CurrencyPositivePattern properties of the NumberFormatInfo object returned by the IFormatProvider.GetFormat method of the provider parameter. Il simbolo di valuta può essere visualizzati nella s se style include il NumberStyles.AllowCurrencySymbol flag.The currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Un segno facoltativo.An optional sign.
cifredigits Una sequenza di cifre comprese tra 0 e 9.A sequence of digits ranging from 0 to 9.
.. Simbolo di separatore decimale delle impostazioni cultura specifiche.A culture-specific decimal point symbol.
fractional-digitsfractional-digits Una sequenza di cifre comprese tra 0 e 9.A sequence of digits ranging from 0 to 9.

Il style parametro specifica il formato consentito del s parametro e può essere uno o più NumberStyles combinate tramite un'operazione con OR di costanti enumerate.The style parameter specifies the permitted format of the s parameter, and can be one or more NumberStyles enumerated constants combined using a bitwise OR operation. Se style è null, s viene interpretato mediante il NumberStyles.Number stile.If style is null, s is interpreted using the NumberStyles.Number style.

Il provider parametro è un IFormatProvider implementazione, ad esempio un NumberFormatInfo o CultureInfo oggetto.The provider parameter is an IFormatProvider implementation such as a NumberFormatInfo or CultureInfo object. Il provider parametro fornisce informazioni specifiche delle impostazioni cultura utilizzate durante l'analisi.The provider parameter supplies culture-specific information used in parsing. Se provider è null, verranno usate le impostazioni cultura correnti del thread.If provider is null, the thread current culture is used.

Oggetto Decimal oggetto ha 29 cifre di precisione.A Decimal object has 29 digits of precision. Se s rappresenta un numero ha più di 29 cifre, ma con una parte frazionaria ed è compreso tra MaxValue e MinValue, viene arrotondato al numero, non troncato, a 29 cifre al valore più vicino.If s represents a number that has more than 29 digits, but has a fractional part and is within the range of MaxValue and MinValue, the number is rounded, not truncated, to 29 digits using rounding to nearest.

Se viene rilevato un separatore nel s parametro durante un'operazione di analisi e la valuta applicabile o il numero decimale e i separatori di gruppi sono uguali, l'operazione di analisi si presuppone che il separatore è un separatore decimale, anziché un gruppo separatore.If a separator is encountered in the s parameter during a parse operation, and the applicable currency or number decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. Per altre informazioni sui separatori, vedere CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, e NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Vedi anche

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal) TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal) TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal) TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal)

public:
 static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out decimal result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider *  -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean

Parametri

Restituisce

TryParse(ReadOnlySpan<Char>, Decimal) TryParse(ReadOnlySpan<Char>, Decimal) TryParse(ReadOnlySpan<Char>, Decimal) TryParse(ReadOnlySpan<Char>, Decimal)

public:
 static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse (ReadOnlySpan<char> s, out decimal result);
static member TryParse : ReadOnlySpan<char> *  -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Decimal) As Boolean

Parametri

Restituisce

TryParse(String, Decimal) TryParse(String, Decimal) TryParse(String, Decimal) TryParse(String, Decimal)

Converte la rappresentazione di stringa di un numero nell'oggetto Decimal equivalente.Converts the string representation of a number to its Decimal equivalent. Un valore restituito indica se la conversione è riuscita o meno.A return value indicates whether the conversion succeeded or failed.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse (string s, out decimal result);
static member TryParse : string *  -> bool
Public Shared Function TryParse (s As String, ByRef result As Decimal) As Boolean

Parametri

s
String String String String

Rappresentazione di stringa del numero da convertire.The string representation of the number to convert.

result
Decimal Decimal Decimal Decimal

Quando questo metodo restituisce il controllo, 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.When this method returns, contains the Decimal number that is equivalent to the numeric value contained in s, if the conversion succeeded, or zero if the conversion failed. La conversione non viene eseguita se il parametro s è null o Empty, non è un numero in formato valido o rappresenta un numero minore di MinValue o maggiore di MaxValue.The conversion fails if the s parameter is null or Empty, is not a number in a valid format, or represents a number less than MinValue or greater than MaxValue. Questo parametro viene passato non inizializzato. Qualsiasi valore fornito in origine in result viene sovrascritto.This parameter is passed uininitialized; any value originally supplied in result is overwritten.

Restituisce

true se s è stato convertito correttamente; in caso contrario, false.true if s was converted successfully; otherwise, false.

Esempi

L'esempio seguente usa il Decimal.TryParse(String, Decimal) metodo per convertire le rappresentazioni di stringa di valori numerici per Decimal valori.The following example uses the Decimal.TryParse(String, Decimal) method to convert the string representations of numeric values to Decimal values. Si presuppone che en-US è la lingua corrente.It assumes that en-US is the current culture.

string value;
decimal number;

// Parse a floating-point value with a thousands separator.
value = "1,643.57";
if (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);      

// Parse a floating-point value with a currency symbol and a 
// thousands separator.
value = "$1,643.57";
if (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);   

// Parse value in exponential notation.
value = "-1.643e6";
if (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);   

// Parse a negative integer value.
value = "-1689346178821";
if (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);   
// The example displays the following output to the console:
//       1643.57
//       Unable to parse '$1,643.57'.
//       Unable to parse '-1.643e6'.
//       -1689346178821      
Dim value As String
Dim number As Decimal

' Parse a floating-point value with a thousands separator.
value = "1,643.57"
If Decimal.TryParse(value, number) Then
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)      
End If   

' Parse a floating-point value with a currency symbol and a 
' thousands separator.
value = "$1,643.57"
If Decimal.TryParse(value, number) Then
   Console.WriteLine(number)  
Else
   Console.WriteLine("Unable to parse '{0}'.", value)   
End If

' Parse value in exponential notation.
value = "-1.643e6"
If Decimal.TryParse(value, number)
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)   
End If

' Parse a negative integer value.
value = "-1689346178821"
If Decimal.TryParse(value, number)
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)   
End If
' The example displays the following output to the console:
'       1643.57
'       Unable to parse '$1,643.57'.
'       Unable to parse '-1.643e6'.
'       -1689346178821      

Commenti

Questo overload differisce dal Decimal.Parse(String) metodo restituendo un valore booleano che indica se l'operazione di analisi è stata completata invece di restituire il valore numerico analizzato.This overload differs from the Decimal.Parse(String) method by returning a Boolean value that indicates whether the parse operation succeeded instead of returning the parsed numeric value. Elimina la necessità di usare la gestione delle eccezioni da testare per una FormatException nel caso in cui s non è valido e non può essere analizzata correttamente.It eliminates the need to use exception handling to test for a FormatException in the event that s is invalid and cannot be successfully parsed.

Parametro s contiene un numero nel formato:Parameter s contains a number of the form:

[ws] [accesso] [numero di cifre] cifre [cifre frazionarie] [ws][ws][sign][digits,]digits[.fractional-digits][ws]

Gli elementi tra parentesi quadre ([e]) sono facoltativi.Elements in square brackets ([ and ]) are optional. La tabella seguente descrive i singoli elementi.The following table describes each element.

ElementoElement DescriptionDescription
wsws Spazio vuoto facoltativo.Optional white space.
signsign Un segno facoltativo.An optional sign.
cifredigits Una sequenza di cifre comprese tra 0 e 9.A sequence of digits ranging from 0 to 9.
,, Impostazioni cultura specifiche migliaia simbolo del separatore.A culture-specific thousands separator symbol.
.. Simbolo di separatore decimale delle impostazioni cultura specifiche.A culture-specific decimal point symbol.
fractional-digitsfractional-digits Una sequenza di cifre comprese tra 0 e 9.A sequence of digits ranging from 0 to 9.

Parametro s viene interpretato mediante il NumberStyles.Number stile.Parameter s is interpreted using the NumberStyles.Number style. Ciò significa che lo spazio vuoto e migliaia sono consentiti separatori ma non sono i simboli di valuta.This means that white space and thousands separators are allowed but currency symbols are not. Per definire in modo esplicito gli elementi (ad esempio i simboli di valuta, migliaia, gli spazi vuoti e separatori) che possono essere presenti in s, usare il Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) overload del metodo.To explicitly define the elements (such as currency symbols, thousands separators, and white space) that can be present in s, use the Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) method overload.

Parametro s analizzato usando le informazioni di formattazione in un NumberFormatInfo oggetto inizializzato per impostazioni cultura correnti del sistema.Parameter s is parsed using the formatting information in a NumberFormatInfo object initialized for the current system culture. Per ulteriori informazioni, vedere CurrentInfo.For more information, see CurrentInfo. Analizzare una stringa, usando le informazioni di formattazione di un altro specificati dalle impostazioni cultura, usare il Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) overload del metodo.To parse a string using the formatting information of some other specified culture, use the Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) method overload.

Se necessario, il valore di s viene arrotondato al valore più vicino.If necessary, the value of s is rounded using rounding to nearest.

Oggetto Decimal oggetto ha 29 cifre di precisione.A Decimal object has 29 digits of precision. Se s rappresenta un numero ha più di 29 cifre, ma con una parte frazionaria ed è compreso tra MaxValue e MinValue, viene arrotondato al numero, non troncato, a 29 cifre al valore più vicino.If s represents a number that has more than 29 digits, but has a fractional part and is within the range of MaxValue and MinValue, the number is rounded, not truncated, to 29 digits using rounding to nearest.

Se durante un'operazione di analisi viene rilevato un separatore nel s parametro e la valuta applicabile o numero decimale e i separatori di gruppi sono uguali, l'operazione di analisi si presuppone che il separatore è un separatore decimale, anziché un gruppo separatore.If during a parse operation a separator is encountered in the s parameter, and the applicable currency or number decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. Per altre informazioni sui separatori, vedere CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, e NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Vedi anche

Si applica a