Decimal.Parse Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
è null
.
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
s
è null
.
s
non è nel formato corretto.
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 |
AllowTrailingWhite | Elemento ws |
AllowLeadingSign | Elemento segno |
AllowTrailingSign | Elemento segno |
AllowParentheses | Elemento segno |
AllowThousands | Elemento ,. |
AllowCurrencySymbol | Elemento $. |
Currency | Tutto. Il parametro s non può rappresentare un numero esadecimale o un numero in notazione esponenziale. |
Float | Elemento 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
è null
.
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.
s
è null
.
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 |
AllowTrailingWhite | Elemento ws |
AllowLeadingSign | Elemento segno |
AllowTrailingSign | Elemento segno |
AllowParentheses | Elemento segno |
AllowThousands | Elemento ,. |
AllowCurrencySymbol | Elemento $. |
Currency | Tutto. Il parametro s non può rappresentare un numero esadecimale o un numero in notazione esponenziale. |
Float | Elemento 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.