Condividi tramite


Decimal.TryParse Metodo

Definizione

Converte la rappresentazione di stringa di un numero nel relativo Decimal equivalente. Un valore restituito indica se la conversione ha avuto esito positivo o negativo.

Overload

TryParse(ReadOnlySpan<Byte>, Decimal)

Tenta di convertire un intervallo di caratteri UTF-8 contenente la rappresentazione di stringa di un numero nell'equivalente decimale con segno.

TryParse(ReadOnlySpan<Char>, Decimal)

Converte la rappresentazione dell'intervallo di un numero nel relativo Decimal equivalente usando il formato specifico delle impostazioni cultura. Un valore restituito indica se la conversione ha avuto esito positivo o negativo.

TryParse(String, Decimal)

Converte la rappresentazione di stringa di un numero nel relativo Decimal equivalente. Un valore restituito indica se la conversione ha avuto esito positivo o negativo.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal)

Prova ad analizzare un intervallo di caratteri UTF-8 in un valore.

TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)

Tenta di analizzare un intervallo di caratteri in un valore.

TryParse(String, IFormatProvider, Decimal)

Tenta di analizzare una stringa in un valore.

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

Prova ad analizzare un intervallo di caratteri UTF-8 in un valore.

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

Converte la rappresentazione dell'intervallo di un numero nel relativo Decimal equivalente usando lo stile e il formato specifico delle impostazioni cultura specificati. Un valore restituito indica se la conversione ha avuto esito positivo o negativo.

TryParse(String, NumberStyles, IFormatProvider, Decimal)

Converte la rappresentazione di stringa di un numero nel relativo Decimal equivalente usando lo stile e il formato specifico delle impostazioni cultura specificati. Un valore restituito indica se la conversione ha avuto esito positivo o negativo.

TryParse(ReadOnlySpan<Byte>, Decimal)

Origine:
Decimal.cs
Origine:
Decimal.cs

Tenta di convertire un intervallo di caratteri UTF-8 contenente la rappresentazione di stringa di un numero nell'equivalente decimale con segno.

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

Parametri

utf8Text
ReadOnlySpan<Byte>

Intervallo contenente i caratteri UTF-8 che rappresentano il numero da convertire.

result
Decimal

Quando termina, questo metodo contiene il valore decimale con segno equivalente al numero contenuto in utf8Text se la conversione ha avuto esito positivo o zero se la conversione non è riuscita. Questo parametro viene passato non inizializzato; qualsiasi valore specificato originariamente nel risultato verrà sovrascritto.

Restituisce

true se utf8Text è stata convertita correttamente; in caso contrario, false.

Si applica a

TryParse(ReadOnlySpan<Char>, Decimal)

Origine:
Decimal.cs
Origine:
Decimal.cs
Origine:
Decimal.cs

Converte la rappresentazione dell'intervallo di un numero nel relativo Decimal equivalente usando il formato specifico delle impostazioni cultura. Un valore restituito indica se la conversione ha avuto esito positivo o negativo.

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> * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Decimal) As Boolean

Parametri

s
ReadOnlySpan<Char>

Intervallo contenente i caratteri che rappresentano il numero da convertire.

result
Decimal

Quando termina, questo metodo contiene il numero Decimal equivalente al valore numerico contenuto in s, se la conversione ha avuto esito positivo o zero se la conversione non è riuscita. La conversione non riesce se il parametro s è null o Empty o rappresenta un numero minore di Decimal.MinValue o maggiore di Decimal.MaxValue. Questo parametro viene passato uininitialized; qualsiasi valore originariamente fornito in result viene sovrascritto.

Restituisce

true se s è stata convertita correttamente; in caso contrario, false.

Si applica a

TryParse(String, Decimal)

Origine:
Decimal.cs
Origine:
Decimal.cs
Origine:
Decimal.cs

Converte la rappresentazione di stringa di un numero nel relativo Decimal equivalente. Un valore restituito indica se la conversione ha avuto esito positivo o negativo.

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

Parametri

s
String

Rappresentazione di stringa del numero da convertire.

result
Decimal

Quando termina, questo metodo contiene il numero Decimal equivalente al valore numerico contenuto in s, se la conversione ha avuto esito positivo o zero se la conversione non è riuscita. La conversione non riesce se il parametro s è null o Empty, non è un numero in un formato valido oppure rappresenta un numero minore di Decimal.MinValue o maggiore di Decimal.MaxValue. Questo parametro viene passato uininitialized; qualsiasi valore originariamente fornito in result viene sovrascritto.

Restituisce

true se s è stata convertita correttamente; in caso contrario, false.

Esempio

Nell'esempio seguente viene utilizzato il metodo Decimal.TryParse(String, Decimal) per convertire le rappresentazioni di stringa di valori numerici in valori Decimal. Si presuppone che en-US sia la lingua corrente.

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
// Parse a floating-point value with a thousands separator.
let value = "1,643.57"
match Decimal.TryParse value with
| true, number ->
    printfn $"{number}"
| _ ->
    printfn $"Unable to parse '{value}'."

// Parse a floating-point value with a currency symbol and a
// thousands separator.
let value = "$1,643.57"
match Decimal.TryParse value with
| true, number ->
    printfn $"{number}"
| _ -> 
    printfn $"Unable to parse '{value}'."

// Parse value in exponential notation.
let value = "-1.643e6"
match Decimal.TryParse value with
| true, number ->
    printfn $"{number}"
| _ -> 
    printfn $"Unable to parse '{value}'."

// Parse a negative integer value.
let value = "-1689346178821"
match Decimal.TryParse value with
| true, number ->
    printfn $"{number}"
| _ -> 
    printfn $"Unable to parse '{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 è diverso dal metodo Decimal.Parse(String) restituendo un valore booleano che indica se l'operazione di analisi è riuscita anziché restituire il valore numerico analizzato. Elimina la necessità di usare la gestione delle eccezioni per testare un FormatException nel caso in cui s non sia valido e non possa essere analizzato correttamente.

Il parametro s contiene un numero di form:

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

Gli elementi tra parentesi quadre ([ e ]) sono facoltativi. La tabella seguente descrive ogni elemento.

Elemento Descrizione
ws Spazio vuoto facoltativo.
firmare Segno facoltativo.
cifre Sequenza di cifre compresa tra 0 e 9.
, Simbolo separatore delle migliaia specifico delle impostazioni cultura.
. Simbolo di virgola decimale specifica delle impostazioni cultura.
cifre frazionarie Sequenza di cifre compresa tra 0 e 9.

Il s dei parametri viene interpretato usando lo stile NumberStyles.Number. Ciò significa che gli spazi vuoti e le migliaia di separatori sono consentiti, ma i simboli di valuta non sono. Per definire in modo esplicito gli elementi ,ad esempio simboli di valuta, migliaia di separatori e spazi vuoti, che possono essere presenti in s, usare l'overload del metodo Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal).

Il parametro s viene analizzato usando le informazioni di formattazione in un oggetto NumberFormatInfo inizializzato per le impostazioni cultura di sistema correnti. Per altre informazioni, vedere CurrentInfo. Per analizzare una stringa usando le informazioni di formattazione di altre impostazioni cultura specificate, usare l'overload del metodo Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal).

Se necessario, il valore di s viene arrotondato usando l'arrotondamento al più vicino.

Un oggetto Decimal ha 29 cifre di precisione. Se s rappresenta un numero con più di 29 cifre, ma ha una parte frazionaria ed è compreso nell'intervallo di MaxValue e MinValue, il numero viene arrotondato, non troncato, a 29 cifre utilizzando l'arrotondamento al più vicino.

Se durante un'operazione di analisi viene rilevato un separatore nel parametro s e i separatori decimali o numerici applicabili sono gli stessi, l'operazione di analisi presuppone che il separatore sia un separatore decimale anziché un separatore di gruppo. Per altre informazioni sui separatori, vedere CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatore NumberGroupSeparator.

Vedi anche

Si applica a

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal)

Origine:
Decimal.cs
Origine:
Decimal.cs

Prova ad analizzare un intervallo di caratteri UTF-8 in un valore.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = IUtf8SpanParsable<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out decimal result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * decimal -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As Decimal) As Boolean

Parametri

utf8Text
ReadOnlySpan<Byte>

Intervallo di caratteri UTF-8 da analizzare.

provider
IFormatProvider

Oggetto che fornisce informazioni di formattazione specifiche delle impostazioni cultura su utf8Text.

result
Decimal

In caso di restituzione, contiene il risultato dell'analisi corretta utf8Text o di un valore non definito in caso di errore.

Restituisce

true se utf8Text è stato analizzato correttamente; in caso contrario, false.

Si applica a

TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)

Origine:
Decimal.cs
Origine:
Decimal.cs
Origine:
Decimal.cs

Tenta di analizzare un intervallo di caratteri in un valore.

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

Parametri

s
ReadOnlySpan<Char>

Intervallo di caratteri da analizzare.

provider
IFormatProvider

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

result
Decimal

Quando termina, questo metodo contiene il risultato dell'analisi corretta so di un valore non definito in caso di errore.

Restituisce

true se s è stato analizzato correttamente; in caso contrario, false.

Si applica a

TryParse(String, IFormatProvider, Decimal)

Origine:
Decimal.cs
Origine:
Decimal.cs
Origine:
Decimal.cs

Tenta di analizzare una stringa in un valore.

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

Parametri

s
String

Stringa da analizzare.

provider
IFormatProvider

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

result
Decimal

Quando termina, questo metodo contiene il risultato dell'analisi corretta s o di un valore non definito in caso di errore.

Restituisce

true se s è stato analizzato correttamente; in caso contrario, false.

Si applica a

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

Origine:
Decimal.cs
Origine:
Decimal.cs

Prova ad analizzare un intervallo di caratteri UTF-8 in un valore.

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

Parametri

utf8Text
ReadOnlySpan<Byte>

Intervallo di caratteri UTF-8 da analizzare.

style
NumberStyles

Combinazione bit per bit di stili numerici che possono essere presenti in utf8Text.

provider
IFormatProvider

Oggetto che fornisce informazioni di formattazione specifiche delle impostazioni cultura su utf8Text.

result
Decimal

In caso di restituzione, contiene il risultato dell'analisi corretta utf8Text o di un valore non definito in caso di errore.

Restituisce

true se utf8Text è stato analizzato correttamente; in caso contrario, false.

Si applica a

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

Origine:
Decimal.cs
Origine:
Decimal.cs
Origine:
Decimal.cs

Converte la rappresentazione dell'intervallo di un numero nel relativo Decimal equivalente usando lo stile e il formato specifico delle impostazioni cultura specificati. Un valore restituito indica se la conversione ha avuto esito positivo o negativo.

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, [Runtime::InteropServices::Out] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out 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 * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean

Parametri

s
ReadOnlySpan<Char>

Intervallo contenente i caratteri che rappresentano il numero da convertire.

style
NumberStyles

Combinazione bit per bit di valori di enumerazione che indica il formato consentito di s. Un valore tipico da specificare è Number.

provider
IFormatProvider

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

result
Decimal

Quando termina, questo metodo contiene il numero Decimal equivalente al valore numerico contenuto in s, se la conversione ha avuto esito positivo o zero se la conversione non è riuscita. La conversione non riesce se il parametro s è null o Empty, non è un numero in un formato conforme a styleo rappresenta un numero minore di decimal.MinValue o maggiore di Decimal.MaxValue. Questo parametro viene passato uininitialized; qualsiasi valore originariamente fornito in result viene sovrascritto.

Restituisce

true se s è stata convertita correttamente; in caso contrario, false.

Si applica a

TryParse(String, NumberStyles, IFormatProvider, Decimal)

Origine:
Decimal.cs
Origine:
Decimal.cs
Origine:
Decimal.cs

Converte la rappresentazione di stringa di un numero nel relativo Decimal equivalente usando lo stile e il formato specifico delle impostazioni cultura specificati. Un valore restituito indica se la conversione ha avuto esito positivo o negativo.

public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result);
public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out 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 * decimal -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean

Parametri

s
String

Rappresentazione di stringa del numero da convertire.

style
NumberStyles

Combinazione bit per bit di valori di enumerazione che indica il formato consentito di s. Un valore tipico da specificare è Number.

provider
IFormatProvider

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

result
Decimal

Quando termina, questo metodo contiene il numero Decimal equivalente al valore numerico contenuto in s, se la conversione ha avuto esito positivo o zero se la conversione non è riuscita. La conversione non riesce se il parametro s è null o Empty, non è un numero in un formato conforme a styleo rappresenta un numero minore di decimal.MinValue o maggiore di Decimal.MaxValue. Questo parametro viene passato uininitialized; qualsiasi valore originariamente fornito in result viene sovrascritto.

Restituisce

true se s è stata convertita correttamente; in caso contrario, false.

Eccezioni

style non è un valore di NumberStyles.

-o-

style è il valore di AllowHexSpecifier.

Esempio

Nell'esempio seguente viene illustrato l'uso del metodo TryParse(String, NumberStyles, IFormatProvider, Decimal) per analizzare la rappresentazione di stringa di un numero con uno stile specifico ed è formattato usando le convenzioni di una determinata cultura.

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'.
// Parse currency value using en-GB culture.
let value = "£1,097.63"
let style = NumberStyles.Number ||| NumberStyles.AllowCurrencySymbol
let culture = CultureInfo.CreateSpecificCulture "en-GB"
match Decimal.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ -> 
    printfn $"Unable to convert '{value}'."
// Displays:
//       Converted '£1,097.63' to 1097.63.

let value = "1345,978"
let style = NumberStyles.AllowDecimalPoint
let culture = CultureInfo.CreateSpecificCulture "fr-FR"
match Decimal.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ -> 
    printfn $"Unable to convert '{value}'."
// Displays:
//       Converted '1345,978' to 1345.978.

let value = "1.345,978"
let style = NumberStyles.AllowDecimalPoint ||| NumberStyles.AllowThousands
let culture = CultureInfo.CreateSpecificCulture "es-ES"
match Decimal.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ -> 
    printfn $"Unable to convert '{value}'."
// Displays:
//       Converted '1.345,978' to 1345.978.

let value = "1 345,978"
match Decimal.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ -> 
    printfn $"Unable to convert '{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 è diverso dal metodo Decimal.Parse(String, NumberStyles, IFormatProvider) restituendo un valore booleano che indica se l'operazione di analisi è riuscita anziché restituire il valore numerico analizzato. Elimina la necessità di usare la gestione delle eccezioni per testare un FormatException nel caso in cui s non sia valido e non possa essere analizzato correttamente.

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

A seconda del valore dello stile, il parametro s può includere gli elementi seguenti:

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

Gli elementi tra parentesi quadre ([ e ]) sono facoltativi. La tabella seguente descrive ogni elemento.

Elemento Descrizione
ws Spazio vuoto facoltativo. Gli spazi vuoti possono essere visualizzati all'inizio di s se style include il flag di NumberStyles.AllowLeadingWhite. Può essere visualizzato alla fine di s se style include il flag di NumberStyles.AllowTrailingWhite.
$ Simbolo di valuta specifico delle impostazioni cultura. La posizione nella stringa è definita dalle proprietà NumberFormatInfo.CurrencyNegativePattern o NumberFormatInfo.CurrencyPositivePattern dell'oggetto NumberFormatInfo restituito dal metodo IFormatProvider.GetFormat del parametro provider. Il simbolo di valuta può essere visualizzato in s se style include il flag di NumberStyles.AllowCurrencySymbol.
firmare Segno facoltativo.
cifre Sequenza di cifre compresa tra 0 e 9.
. Simbolo di virgola decimale specifica delle impostazioni cultura.
cifre frazionarie Sequenza di cifre compresa tra 0 e 9.

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

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

Un oggetto Decimal ha 29 cifre di precisione. Se s rappresenta un numero con più di 29 cifre, ma ha una parte frazionaria ed è compreso nell'intervallo di MaxValue e MinValue, il numero viene 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 i separatori decimali o numerici applicabili sono gli stessi, l'operazione di analisi presuppone che il separatore sia un separatore decimale anziché un separatore di gruppo. Per altre informazioni sui separatori, vedere CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatore NumberGroupSeparator.

Vedi anche

Si applica a