Decimal.Parse Metodo

Definizione

Converte la rappresentazione di stringa di un numero nell'oggetto Decimal equivalente.

Overload

Parse(String)

Converte la rappresentazione di stringa di un numero nell'oggetto 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 nell'oggetto Decimal equivalente.

Parse(String, IFormatProvider)

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

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

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

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Converte la rappresentazione in forma di intervallo di un numero nell'oggetto Decimal equivalente usando lo stile specificato e il formato specifico delle impostazioni cultura.

Parse(String, NumberStyles, IFormatProvider)

Converte la rappresentazione di stringa di un numero nell'oggetto Decimal equivalente usando lo stile specificato e il formato specifico delle impostazioni cultura.

Parse(String)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Converte la rappresentazione di stringa di un numero nell'oggetto 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 del numero contenuto in s.

Eccezioni

Il formato di s non è corretto.

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

Esempio

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

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 modulo:

[ws] [sign] [cifre,]cifre[.frazionarie][ws]

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

Elemento Descrizione
ws Spazio vuoto facoltativo.
sign Segno facoltativo.
Cifre Sequenza di cifre compreso tra 0 e 9.
, Simbolo separatore specifico delle impostazioni cultura.
. Simbolo decimale specifico delle impostazioni cultura.
cifre frazionarie Sequenza di cifre compreso tra 0 e 9.

Il parametro s viene interpretato usando lo NumberStyles.Number stile. Ciò significa che lo spazio vuoto 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 Decimal.Parse(String, NumberStyles) metodo o .Decimal.Parse(String, NumberStyles, IFormatProvider)

Il parametro s viene analizzato usando le informazioni di formattazione in un'inizializzazione NumberFormatInfo per le impostazioni cultura di sistema correnti. Per altre informazioni, vedere CurrentInfo. Per analizzare una stringa usando le informazioni di formattazione di alcune altre impostazioni cultura, usare il Decimal.Parse(String, IFormatProvider) metodo 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 e si trova all'interno dell'intervallo di MaxValue e MinValue, il numero viene arrotondato, non troncato, a 29 cifre usando l'arrotondamento più vicino.

Se durante un'operazione di analisi viene rilevato un separatore nel s parametro e i separatori decimali o numerici applicabili sono uguali, 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)

Source:
Decimal.cs
Source:
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 relative a utf8Text.

Restituisce

Risultato dell'analisi utf8Textdi .

Implementazioni

Si applica a

Parse(ReadOnlySpan<Char>, IFormatProvider)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
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 relative a s.

Restituisce

Risultato dell'analisi sdi .

Implementazioni

Si applica a

Parse(String, NumberStyles)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Converte la rappresentazione di stringa di un numero in uno stile specificato nell'oggetto 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

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

Eccezioni

style non è un valore di NumberStyles.

-oppure-

style è il valore di AllowHexSpecifier.

Il formato di s non è corretto.

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

Esempio

Nell'esempio di codice seguente viene usato il Parse(String, NumberStyles) metodo per analizzare le rappresentazioni di stringa dei Decimal valori 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 style parametro definisce gli elementi di stile , ad esempio migliaia di separatori, spazi vuoti e simboli di valuta, consentiti nel s parametro per l'esito positivo dell'operazione di analisi. Deve essere una combinazione di flag di bit dall'enumerazione NumberStyles . I membri seguenti NumberStyles non sono supportati:

A seconda del valore di style, il s parametro 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 i singoli elementi.

Elemento Descrizione
ws Spazio vuoto facoltativo. Lo spazio vuoto può essere visualizzato all'inizio di s se include il NumberStyles.AllowLeadingWhite flag e può essere visualizzato alla fine di s se style include il NumberStyles.AllowTrailingWhite flag.style
$ Simbolo di valuta specifico delle impostazioni cultura. La sua posizione nella stringa è definita dalle NumberFormatInfo.CurrencyNegativePattern proprietà e NumberFormatInfo.CurrencyPositivePattern delle impostazioni cultura correnti. Il simbolo di valuta della cultura corrente può essere visualizzato in s se style include il NumberStyles.AllowCurrencySymbol flag.
sign Segno facoltativo. Il segno può essere visualizzato all'inizio di s se include il NumberStyles.AllowLeadingSign flag e può essere visualizzato alla fine di s se style include il NumberStyles.AllowTrailingSignstyle flag. Le parentesi possono essere usate in s per indicare un valore negativo se style include il NumberStyles.AllowParentheses flag.
Cifre Sequenza di cifre compreso tra 0 e 9.
, Simbolo separatore specifico delle impostazioni cultura. Il separatore delle migliaia di impostazioni cultura correnti può essere visualizzato in s se style include il NumberStyles.AllowThousands flag.
. Simbolo decimale specifico delle impostazioni cultura. Il simbolo decimale della cultura corrente può essere visualizzato in s se style include il NumberStyles.AllowDecimalPoint flag.
cifre frazionarie Sequenza di cifre compreso tra 0 e 9. Le cifre frazionarie possono essere visualizzate solo s se style include il NumberStyles.AllowDecimalPoint flag.
e Carattere 'e' o 'E', che indica che il valore è rappresentato nella notazione esponenziale. Il s parametro può rappresentare un numero in notazione esponenziale se style include il NumberStyles.AllowExponent flag.

Nota

Tutti i caratteri NUL terminanti (U+0000) vengono s ignorati dall'operazione di analisi, indipendentemente dal valore dell'argomento style .

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

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

Il s parametro viene analizzato usando le informazioni di formattazione in un NumberFormatInfo oggetto 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 e si trova all'interno dell'intervallo di MaxValue e MinValue, il numero viene arrotondato, non troncato, a 29 cifre usando l'arrotondamento più vicino.

Se un separatore viene rilevato nel s parametro durante un'operazione di analisi, include i NumberStyles.AllowThousands valori e NumberStyles.AllowDecimalPoint e i separatori decimali o numerici applicabili sono uguali, styles 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)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

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

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

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

Restituisce

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

Implementazioni

Eccezioni

s non è nel 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 HttpRequest.UserLanguages proprietà per determinare le impostazioni locali dell'utente. Crea quindi un'istanza di un CultureInfo oggetto che corrisponde a tale impostazione locale. L'oggetto NumberFormatInfo appartenente a tale CultureInfo oggetto viene quindi passato al Parse(String, IFormatProvider) metodo per convertire l'input dell'utente in un Decimal valore.

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 Parse(String, IFormatProvider) metodo viene comunemente usato per convertire il testo che può essere formattato in diversi modi in un Decimal valore. Ad esempio, può essere usato per convertire il testo immesso da un utente in una casella di testo HTML in un valore numerico.

Il s parametro contiene un numero di modulo:

[ws] [sign] [cifre,]cifre[.frazionarie][ws]

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

Elemento Descrizione
ws Spazio vuoto facoltativo.
sign Segno facoltativo.
Cifre Sequenza di cifre compreso tra 0 e 9.
, Simbolo separatore specifico delle impostazioni cultura.
. Simbolo decimale specifico delle impostazioni cultura.
cifre frazionarie Sequenza di cifre compreso tra 0 e 9.

Il s parametro viene interpretato usando lo NumberStyles.Number stile. Ciò significa che lo spazio vuoto 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 Decimal.Parse(String, NumberStyles, IFormatProvider) metodo .

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

Un Decimal oggetto ha 29 cifre di precisione. Se s rappresenta un numero con più di 29 cifre, ma ha una parte frazionaria e si trova all'interno dell'intervallo di MaxValue e MinValue, il numero viene arrotondato, non troncato, a 29 cifre usando l'arrotondamento più vicino.

Se viene rilevato un separatore nel s parametro durante un'operazione di analisi e i separatori decimali o numerici applicabili sono uguali, 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)

Source:
Decimal.cs
Source:
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 di numero che possono essere presenti in utf8Text.

provider
IFormatProvider

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

Restituisce

Risultato dell'analisi utf8Textdi .

Implementazioni

Si applica a

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Converte la rappresentazione in forma di intervallo di un numero nell'oggetto Decimal equivalente usando lo stile specificato e il formato specifico delle impostazioni cultura.

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 relative al formato di s.

Restituisce

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

Implementazioni

Si applica a

Parse(String, NumberStyles, IFormatProvider)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Converte la rappresentazione di stringa di un numero nell'oggetto Decimal equivalente usando lo stile specificato e il formato specifico delle impostazioni cultura.

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 relative al formato di s.

Restituisce

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

Implementazioni

Eccezioni

Il formato di s non è corretto.

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

style non è un valore di NumberStyles.

-oppure-

style è il valore di AllowHexSpecifier.

Esempio

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

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 style parametro definisce il formato consentito del parametro per l'esito positivo dell'operazione s di analisi. Deve essere una combinazione di flag di bit dall'enumerazione NumberStyles . I membri seguenti NumberStyles non sono supportati:

A seconda del valore di style, il s parametro 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 i singoli elementi.

Elemento Descrizione
$ Simbolo di valuta specifico delle impostazioni cultura. La sua posizione nella stringa è definita dalle CurrencyNegativePattern proprietà e CurrencyPositivePattern dell'oggetto NumberFormatInfo restituito dal GetFormat metodo del provider parametro. Il simbolo di valuta può essere visualizzato in s se style include il NumberStyles.AllowCurrencySymbol flag.
ws Spazio vuoto facoltativo. Lo spazio vuoto può essere visualizzato all'inizio di s se include il NumberStyles.AllowLeadingWhite flag e può essere visualizzato alla fine di s se style include il NumberStyles.AllowTrailingWhite flag.style
sign Segno facoltativo. Il segno può essere visualizzato all'inizio di s se include il NumberStyles.AllowLeadingSign flag e può essere visualizzato alla fine di s se style include il NumberStyles.AllowTrailingSignstyle flag. Le parentesi possono essere usate in s per indicare un valore negativo se style include il NumberStyles.AllowParentheses flag.
Cifre Sequenza di cifre compreso tra 0 e 9.
, Simbolo separatore specifico delle impostazioni cultura. Il separatore migliaia di impostazioni cultura definite da provider può essere visualizzato in s se style include il NumberStyles.AllowThousands flag.
. Simbolo decimale specifico delle impostazioni cultura. Il simbolo decimale delle impostazioni cultura definite da provider può essere visualizzato in s se style include il NumberStyles.AllowDecimalPoint flag.
cifre frazionarie Sequenza di cifre compreso tra 0 e 9. Le cifre frazionarie possono essere visualizzate solo s se style include il NumberStyles.AllowDecimalPoint flag.
e Carattere 'e' o 'E', che indica che il valore è rappresentato nella notazione esponenziale. Il s parametro può rappresentare un numero in notazione esponenziale se style include il NumberStyles.AllowExponent flag.

Nota

Tutti i caratteri NUL terminanti (U+0000) vengono s ignorati dall'operazione di analisi, indipendentemente dal valore dell'argomento style .

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

Valore NumberStyles Elementi consentiti in s oltre alle cifre
None Solo l'elemento cifre .
AllowDecimalPoint Elementi . e frazionari .
AllowExponent Il s parametro può anche usare la notazione esponenziale. Questo flag supporta i valori nelle cifredel modulo E; sono necessari flag aggiuntivi per analizzare correttamente le stringhe con elementi quali segni positivi o negativi e simboli decimali.
AllowLeadingWhite Elemento ws all'inizio di s.
AllowTrailingWhite Elemento ws alla fine di s.
AllowLeadingSign Elemento di segno all'inizio di s.
AllowTrailingSign Elemento di segno alla fine di s.
AllowParentheses Elemento di segno sotto forma di parentesi che racchiude il valore numerico.
AllowThousands Elemento , .
AllowCurrencySymbol Elemento $.
Currency Tutti. Il s parametro 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 sse il simbolo . Il s parametro può anche usare la notazione esponenziale.
Number Elementi ws, ,sign e .
Any Tutti gli stili, tranne s non possono rappresentare un numero esadecimale.

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

Un Decimal oggetto ha 29 cifre di precisione. Se s rappresenta un numero con più di 29 cifre, ma ha una parte frazionaria e si trova all'interno dell'intervallo di MaxValue e MinValue, il numero viene arrotondato, non troncato, a 29 cifre usando l'arrotondamento più vicino.

Se viene rilevato un separatore nel s parametro durante un'operazione di analisi e i separatori decimali o numerici applicabili sono uguali, 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