Condividi tramite


Decimal.Parse Metodo

Definizione

Converte la rappresentazione di stringa di un numero nel relativo Decimal equivalente.

Overload

Parse(String)

Converte la rappresentazione di stringa di un numero nel relativo Decimal equivalente.

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Analizza un intervallo di caratteri UTF-8 in un valore.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Analizza un intervallo di caratteri in un valore.

Parse(String, NumberStyles)

Converte la rappresentazione di stringa di un numero in uno stile specificato nel relativo Decimal equivalente.

Parse(String, IFormatProvider)

Converte la rappresentazione di stringa di un numero nel relativo Decimal equivalente usando le informazioni sul formato specifiche delle impostazioni cultura specificate.

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Analizza un intervallo di caratteri UTF-8 in un valore.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Converte la rappresentazione dell'intervallo di un numero nel relativo Decimal equivalente usando lo stile e il formato specifico delle impostazioni cultura specificati.

Parse(String, NumberStyles, IFormatProvider)

Converte la rappresentazione di stringa di un numero nel relativo Decimal equivalente usando lo stile e il formato specifico delle impostazioni cultura specificati.

Parse(String)

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

Converte la rappresentazione di stringa di un numero nel relativo Decimal equivalente.

public:
 static System::Decimal Parse(System::String ^ s);
public static decimal Parse (string s);
static member Parse : string -> decimal
Public Shared Function Parse (s As String) As Decimal

Parametri

s
String

Rappresentazione di stringa del numero da convertire.

Restituisce

Equivalente al numero contenuto in s.

Eccezioni

s non è nel formato corretto.

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

Esempio

Nell'esempio di codice seguente viene usato il metodo Parse(String) per analizzare le rappresentazioni di stringa dei valori Decimal.

string value;
decimal number;
// Parse an integer with thousands separators.
value = "16,523,421";
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '16,523,421' converted to 16523421.

// Parse a floating point value with thousands separators
value = "25,162.1378";
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '25,162.1378' converted to 25162.1378.

// Parse a floating point number with US currency symbol.
value = "$16,321,421.75";
try
{
   number = Decimal.Parse(value);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '$16,321,421.75'.

// Parse a number in exponential notation
value = "1.62345e-02";
try
{
   number = Decimal.Parse(value);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '1.62345e-02'.
// Parse an integer with thousands separators.
let value = "16,523,421"
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
// Displays:
//    '16,523,421' converted to 16523421.

// Parse a floating point value with thousands separators
let value = "25,162.1378"
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
// Displays:
//    '25,162.1378' converted to 25162.1378.

// Parse a floating point number with US currency symbol.
let value = "$16,321,421.75"
try
    let number = Decimal.Parse value
    printfn $"'{value}' converted to {number}."
with :? FormatException ->
    printfn $"Unable to parse '{value}'."
// Displays:
//    Unable to parse '$16,321,421.75'.

// Parse a number in exponential notation
let value = "1.62345e-02"
try
    let number = Decimal.Parse value
    printfn $"'{value}' converted to {number}."
with :? FormatException ->
    printfn $"Unable to parse '{value}'."
// Displays:
//    Unable to parse '1.62345e-02'.
Dim value As String
Dim number As Decimal

' Parse an integer with thousands separators. 
value = "16,523,421"
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays: 
'    '16,523,421' converted to 16523421.

' Parse a floating point value with thousands separators
value = "25,162.1378"
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
'    '25,162.1378' converted to 25162.1378.

' Parse a floating point number with US currency symbol.
value = "$16,321,421.75"
Try
   number = Decimal.Parse(value)
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
'    Unable to parse '$16,321,421.75'.  

' Parse a number in exponential notation
value = "1.62345e-02"
Try
   number = Decimal.Parse(value)
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays: 
'    Unable to parse '1.62345e-02'.

Commenti

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, separatori di migliaia e spazi vuoti, che possono essere presenti in s, utilizzare il metodo Decimal.Parse(String, NumberStyles) o Decimal.Parse(String, NumberStyles, IFormatProvider).

Il parametro s viene analizzato usando le informazioni di formattazione in un 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, usare il metodo Decimal.Parse(String, IFormatProvider) o Decimal.Parse(String, NumberStyles, IFormatProvider).

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

Un 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

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Origine:
Decimal.cs
Origine:
Decimal.cs

Analizza un intervallo di caratteri UTF-8 in un valore.

public:
 static System::Decimal Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<System::Decimal>::Parse;
public static decimal Parse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> decimal
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As Decimal

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.

Restituisce

Risultato dell'analisi utf8Text.

Implementazioni

Si applica a

Parse(ReadOnlySpan<Char>, IFormatProvider)

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

Analizza un intervallo di caratteri in un valore.

public:
 static System::Decimal Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<System::Decimal>::Parse;
public static decimal Parse (ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> decimal
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As Decimal

Parametri

s
ReadOnlySpan<Char>

Intervallo di caratteri da analizzare.

provider
IFormatProvider

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

Restituisce

Risultato dell'analisi s.

Implementazioni

Si applica a

Parse(String, NumberStyles)

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

Converte la rappresentazione di stringa di un numero in uno stile specificato nel relativo Decimal equivalente.

public:
 static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style);
public static decimal Parse (string s, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> decimal
Public Shared Function Parse (s As String, style As NumberStyles) As Decimal

Parametri

s
String

Rappresentazione di stringa del numero da convertire.

style
NumberStyles

Combinazione bit per bit di valori NumberStyles che indica gli elementi di stile che possono essere presenti in s. Un valore tipico da specificare è Number.

Restituisce

Numero Decimal equivalente al numero contenuto in s come specificato da style.

Eccezioni

style non è un valore di NumberStyles.

-o-

style è il valore di AllowHexSpecifier.

s non è nel formato corretto.

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

Esempio

Nell'esempio di codice seguente viene usato il metodo Parse(String, NumberStyles) per analizzare le rappresentazioni di stringa dei valori Decimal usando le impostazioni cultura en-US.

string value;
decimal number;
NumberStyles style;

// Parse string with a floating point value using NumberStyles.None.
value = "8694.12";
style = NumberStyles.None;
try
{
   number = Decimal.Parse(value, style);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '8694.12'.

// Parse string with a floating point value and allow decimal point.
style = NumberStyles.AllowDecimalPoint;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '8694.12' converted to 8694.12.

// Parse string with negative value in parentheses
value = "(1,789.34)";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands |
        NumberStyles.AllowParentheses;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '(1,789.34)' converted to -1789.34.

// Parse string using Number style
value = " -17,623.49 ";
style = NumberStyles.Number;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    ' -17,623.49 ' converted to -17623.49.
// Parse string with a floating point value using NumberStyles.None.
let value = "8694.12"
let style = NumberStyles.None
try
    let number = Decimal.Parse(value, style)
    printfn $"'{value}' converted to {number}."
with :? FormatException ->
    printfn $"Unable to parse '{value}'."
// Displays:
//    Unable to parse '8694.12'.

// Parse string with a floating point value and allow decimal point.
let style = NumberStyles.AllowDecimalPoint
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
//    '8694.12' converted to 8694.12.

// Parse string with negative value in parentheses
let value = "(1,789.34)"
let style = 
    NumberStyles.AllowDecimalPoint ||| 
    NumberStyles.AllowThousands ||| 
    NumberStyles.AllowParentheses
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
//    '(1,789.34)' converted to -1789.34.

// Parse string using Number style
let value = " -17,623.49 "
let style = NumberStyles.Number
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
//    ' -17,623.49 ' converted to -17623.49.
Dim value As String
Dim number As Decimal
Dim style As NumberStyles

' Parse string with a floating point value using NumberStyles.None. 
value = "8694.12"
style = NumberStyles.None
Try
   number = Decimal.Parse(value, style)  
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
'    Unable to parse '8694.12'.

' Parse string with a floating point value and allow decimal point. 
style = NumberStyles.AllowDecimalPoint
number = Decimal.Parse(value, style)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
'    '8694.12' converted to 8694.12.

' Parse string with negative value in parentheses
value = "(1,789.34)"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands Or _
        NumberStyles.AllowParentheses 
number = Decimal.Parse(value, style)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
'    '(1,789.34)' converted to -1789.34.

' Parse string using Number style
value = " -17,623.49 "
style = NumberStyles.Number
number = Decimal.Parse(value, style)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
'    ' -17,623.49 ' converted to -17623.49.

Commenti

Il parametro style definisce gli elementi di stile ,ad esempio migliaia di separatori, spazi vuoti e simboli di valuta, consentiti nel parametro s per l'esito positivo dell'operazione di analisi. Deve essere una combinazione di flag di bit dell'enumerazione NumberStyles. I membri NumberStyles seguenti non sono supportati:

A seconda del valore di style, 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 e possono essere visualizzati alla fine di s se style include il flag NumberStyles.AllowTrailingWhite.
$ Simbolo di valuta specifico delle impostazioni cultura. La posizione nella stringa è definita dalla NumberFormatInfo.CurrencyNegativePattern e dalle proprietà NumberFormatInfo.CurrencyPositivePattern delle impostazioni cultura correnti. Il simbolo di valuta delle impostazioni cultura corrente può essere visualizzato in s se style include il flag NumberStyles.AllowCurrencySymbol.
firmare Segno facoltativo. Il segno può essere visualizzato all'inizio di s se style include il flag di NumberStyles.AllowLeadingSign e può essere visualizzato alla fine di s se style include il flag NumberStyles.AllowTrailingSign. Le parentesi possono essere usate in s per indicare un valore negativo se style include il flag NumberStyles.AllowParentheses.
cifre Sequenza di cifre compresa tra 0 e 9.
, Simbolo separatore delle migliaia specifico delle impostazioni cultura. Il separatore delle migliaia di impostazioni cultura correnti può essere visualizzato in s se style include il flag NumberStyles.AllowThousands.
. Simbolo di virgola decimale specifica delle impostazioni cultura. Il simbolo decimale delle impostazioni cultura corrente può essere visualizzato in s se style include il flag NumberStyles.AllowDecimalPoint.
cifre frazionarie Sequenza di cifre compresa tra 0 e 9. Le cifre frazionarie possono essere visualizzate in s solo se style include il flag di NumberStyles.AllowDecimalPoint.
e Carattere 'e' o 'E', che indica che il valore è rappresentato nella notazione esponenziale. Il parametro s può rappresentare un numero in notazione esponenziale se style include il flag NumberStyles.AllowExponent.

Nota

Qualsiasi carattere di terminazione NUL (U+0000) in s viene ignorato dall'operazione di analisi, indipendentemente dal valore dell'argomento style.

Una stringa con solo cifre (che corrisponde allo stile None) analizza sempre correttamente se si trova nell'intervallo del tipo Decimal. Gli altri NumberStyles membri controllano gli elementi che possono essere ma non devono essere presenti nella stringa di input. La tabella seguente indica in che modo i singoli membri NumberStyles influiscono sugli elementi che possono essere presenti in s.

Valore NumberStyles Elementi consentiti in s oltre alle cifre
None Solo le cifre elemento.
AllowDecimalPoint Oggetto . e cifre frazionarie elementi.
AllowExponent Il parametro s può anche usare la notazione esponenziale. Questo flag supporta i valori nel formato cifreEcifre; sono necessari flag aggiuntivi per analizzare correttamente le stringhe con elementi quali segni positivi o negativi e simboli di virgola decimale.
AllowLeadingWhite Elemento ws all'inizio di .
AllowTrailingWhite Elemento ws alla fine di .
AllowLeadingSign Elemento segno all'inizio di .
AllowTrailingSign Elemento segno alla fine di .
AllowParentheses Elemento segno sotto forma di parentesi che racchiudono il valore numerico.
AllowThousands Elemento ,.
AllowCurrencySymbol Elemento $.
Currency Tutto. Il parametro s non può rappresentare un numero esadecimale o un numero in notazione esponenziale.
Float Elemento ws all'inizio o alla fine di , segno all'inizio di e il simbolo di . Il parametro s può anche usare la notazione esponenziale.
Number Elementi ws, sign, , e ..
Any Tutti gli stili, ad eccezione di s non possono rappresentare un numero esadecimale.

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.

Un 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, styles include i valori NumberStyles.AllowThousands e NumberStyles.AllowDecimalPoint e i separatori decimali o numerici e di gruppo 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

Parse(String, IFormatProvider)

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

Converte la rappresentazione di stringa di un numero nel relativo Decimal equivalente usando le informazioni sul formato specifiche delle impostazioni cultura specificate.

public:
 static System::Decimal Parse(System::String ^ s, IFormatProvider ^ provider);
public:
 static System::Decimal Parse(System::String ^ s, IFormatProvider ^ provider) = IParsable<System::Decimal>::Parse;
public static decimal Parse (string s, IFormatProvider provider);
public static decimal Parse (string s, IFormatProvider? provider);
static member Parse : string * IFormatProvider -> decimal
Public Shared Function Parse (s As String, provider As IFormatProvider) As Decimal

Parametri

s
String

Rappresentazione di stringa del numero da convertire.

provider
IFormatProvider

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

Restituisce

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

Implementazioni

Eccezioni

s non è del formato corretto.

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

Esempio

L'esempio seguente è il gestore eventi click del pulsante di un modulo Web. Usa la matrice restituita dalla proprietà HttpRequest.UserLanguages per determinare le impostazioni locali dell'utente. Crea quindi un'istanza di un oggetto CultureInfo che corrisponde a tale impostazione locale. L'oggetto NumberFormatInfo appartenente a tale 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();
}
Protected Sub OkToDecimal_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OkToDecimal.Click
   Dim locale As String
   Dim culture As CultureInfo
   Dim number As Decimal

   ' Return if string is empty
   If String.IsNullOrEmpty(Me.inputNumber.Text) Then Exit Sub

   ' Get locale of web request to determine possible format of number
   If Request.UserLanguages.Length = 0 Then Exit Sub
   locale = Request.UserLanguages(0)
   If String.IsNullOrEmpty(locale) Then Exit Sub

   ' 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(Me.inputNumber.Text, culture.NumberFormat)
   Catch ex As FormatException
      Exit Sub
   Catch ex As Exception
      Exit Sub
   End Try

   ' Output number to label on web form
   Me.outputNumber.Text = "Number is " & number.ToString()
End Sub

Commenti

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

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 parametro s 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 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 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

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Origine:
Decimal.cs
Origine:
Decimal.cs

Analizza un intervallo di caratteri UTF-8 in un valore.

public static decimal Parse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Number, Optional provider As IFormatProvider = Nothing) As Decimal

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.

Restituisce

Risultato dell'analisi utf8Text.

Implementazioni

Si applica a

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

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.

public static decimal Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider? provider = default);
public static decimal Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Number, Optional provider As IFormatProvider = Nothing) As Decimal

Parametri

s
ReadOnlySpan<Char>

Intervallo contenente i caratteri che rappresentano il numero da convertire.

style
NumberStyles

Combinazione bit per bit di valori NumberStyles che indica gli elementi di stile che possono essere presenti in s. Un valore tipico da specificare è Number.

provider
IFormatProvider

Oggetto IFormatProvider che fornisce informazioni specifiche delle impostazioni cultura sul formato di s.

Restituisce

Numero Decimal equivalente al numero contenuto in s come specificato da style e provider.

Implementazioni

Si applica a

Parse(String, NumberStyles, IFormatProvider)

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.

public:
 static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
 static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<System::Decimal>::Parse;
public static decimal Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
public static decimal Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As Decimal

Parametri

s
String

Rappresentazione di stringa del numero da convertire.

style
NumberStyles

Combinazione bit per bit di valori NumberStyles che indica gli elementi di stile che possono essere presenti in s. Un valore tipico da specificare è Number.

provider
IFormatProvider

Oggetto IFormatProvider che fornisce informazioni specifiche delle impostazioni cultura sul formato di s.

Restituisce

Numero Decimal equivalente al numero contenuto in s come specificato da style e provider.

Implementazioni

Eccezioni

s non è nel formato corretto.

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

style non è un valore di NumberStyles.

-o-

style è il valore di AllowHexSpecifier.

Esempio

Nell'esempio seguente viene usata un'ampia gamma di parametri style e provider per analizzare le rappresentazioni di stringa dei valori Decimal.

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

// Parse string using " " as the thousands separator
// and "," as the decimal separator for fr-FR culture.
value = "892 694,12";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands;
provider = new CultureInfo("fr-FR");

number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '892 694,12' converted to 892694.12.

try
{
   number = Decimal.Parse(value, style, CultureInfo.InvariantCulture);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '892 694,12'.

// Parse string using "$" as the currency symbol for en-GB and
// en-US cultures.
value = "$6,032.51";
style = NumberStyles.Number | NumberStyles.AllowCurrencySymbol;
provider = new CultureInfo("en-GB");

try
{
   number = Decimal.Parse(value, style, provider);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '$6,032.51'.

provider = new CultureInfo("en-US");
number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '$6,032.51' converted to 6032.51.
// Parse string using " " as the thousands separator
// and "," as the decimal separator for fr-FR culture.
let value = "892 694,12"
let style = NumberStyles.AllowDecimalPoint ||| NumberStyles.AllowThousands
let provider = CultureInfo "fr-FR"

let number = Decimal.Parse(value, style, provider)
printfn $"'{value}' converted to {number}."
// Displays:
//    '892 694,12' converted to 892694.12.

try
    let number = Decimal.Parse(value, style, CultureInfo.InvariantCulture)
    printfn $"'{value}' converted to {number}."
with :? FormatException ->
    printfn $"Unable to parse '{value}'."
// Displays:
//    Unable to parse '892 694,12'.

// Parse string using "$" as the currency symbol for en-GB and
// en-US cultures.
let value = "$6,032.51"
let style = NumberStyles.Number ||| NumberStyles.AllowCurrencySymbol
let provider = CultureInfo "en-GB"

try
    let number = Decimal.Parse(value, style, provider)
    printfn $"'{value}' converted to {number}."
with :? FormatException ->
    printfn $"Unable to parse '{value}'."
// Displays:
//    Unable to parse '$6,032.51'.

let provider = CultureInfo "en-US"
let number = Decimal.Parse(value, style, provider)
printfn $"'{value}' converted to {number}."
// Displays:
//    '$6,032.51' converted to 6032.51.
Dim value As String
Dim number As Decimal
Dim style As NumberStyles
Dim provider As CultureInfo

' Parse string using " " as the thousands separator 
' and "," as the decimal separator for fr-FR culture.
value = "892 694,12"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands
provider = New CultureInfo("fr-FR")

number = Decimal.Parse(value, style, provider)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays: 
'    '892 694,12' converted to 892694.12.

Try
   number = Decimal.Parse(value, style, CultureInfo.InvariantCulture)  
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays: 
'    Unable to parse '892 694,12'.  

' Parse string using "$" as the currency symbol for en-GB and
' en-US cultures.
value = "$6,032.51"
style = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol
provider = New CultureInfo("en-GB")

Try
   number = Decimal.Parse(value, style, provider)  
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays: 
'    Unable to parse '$6,032.51'.

provider = New CultureInfo("en-US")
number = Decimal.Parse(value, style, provider)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays: 
'    '$6,032.51' converted to 6032.51.

Commenti

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 di style, 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
$ Simbolo di valuta specifico delle impostazioni cultura. La posizione nella stringa è definita dalla CurrencyNegativePattern e dalle proprietà CurrencyPositivePattern dell'oggetto NumberFormatInfo restituito dal metodo GetFormat del parametro provider. Il simbolo di valuta può essere visualizzato in s se style include il flag di NumberStyles.AllowCurrencySymbol.
ws Spazio vuoto facoltativo. Gli spazi vuoti possono essere visualizzati all'inizio di s se style include il flag di NumberStyles.AllowLeadingWhite e possono essere visualizzati alla fine di s se style include il flag NumberStyles.AllowTrailingWhite.
firmare Segno facoltativo. Il segno può essere visualizzato all'inizio di s se style include il flag di NumberStyles.AllowLeadingSign e può essere visualizzato alla fine di s se style include il flag NumberStyles.AllowTrailingSign. Le parentesi possono essere usate in s per indicare un valore negativo se style include il flag NumberStyles.AllowParentheses.
cifre Sequenza di cifre compresa tra 0 e 9.
, Simbolo separatore delle migliaia specifico delle impostazioni cultura. Il separatore delle migliaia delle impostazioni cultura definite da provider può essere visualizzato in s se style include il flag NumberStyles.AllowThousands.
. Simbolo di virgola decimale specifica delle impostazioni cultura. Il simbolo di virgola decimale delle impostazioni cultura definite da provider può essere visualizzato in s se style include il flag NumberStyles.AllowDecimalPoint.
cifre frazionarie Sequenza di cifre compresa tra 0 e 9. Le cifre frazionarie possono essere visualizzate in s solo se style include il flag di NumberStyles.AllowDecimalPoint.
e Carattere 'e' o 'E', che indica che il valore è rappresentato nella notazione esponenziale. Il parametro s può rappresentare un numero in notazione esponenziale se style include il flag NumberStyles.AllowExponent.

Nota

Qualsiasi carattere di terminazione NUL (U+0000) in s viene ignorato dall'operazione di analisi, indipendentemente dal valore dell'argomento style.

Una stringa con solo cifre (che corrisponde allo stile None) analizza sempre correttamente se si trova nell'intervallo del tipo Decimal. Gli altri NumberStyles membri controllano gli elementi che possono essere ma non devono essere presenti nella stringa di input. La tabella seguente indica in che modo i singoli membri NumberStyles influiscono sugli elementi che possono essere presenti in s.

Valore NumberStyles Elementi consentiti in s oltre alle cifre
None Solo le cifre elemento.
AllowDecimalPoint Oggetto . e cifre frazionarie elementi.
AllowExponent Il parametro s può anche usare la notazione esponenziale. Questo flag supporta i valori nel formato cifreEcifre; sono necessari flag aggiuntivi per analizzare correttamente le stringhe con elementi quali segni positivi o negativi e simboli di virgola decimale.
AllowLeadingWhite Elemento ws all'inizio di .
AllowTrailingWhite Elemento ws alla fine di .
AllowLeadingSign Elemento segno all'inizio di .
AllowTrailingSign Elemento segno alla fine di .
AllowParentheses Elemento segno sotto forma di parentesi che racchiudono il valore numerico.
AllowThousands Elemento ,.
AllowCurrencySymbol Elemento $.
Currency Tutto. Il parametro s non può rappresentare un numero esadecimale o un numero in notazione esponenziale.
Float Elemento all'inizio o alla fine di , segno all'inizio di e . simbolo. Il parametro s può anche usare la notazione esponenziale.
Number Oggetto ws, sign, ,e . elementi.
Any Tutti gli stili, ad eccezione di s non possono rappresentare un numero esadecimale.

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