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 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)
- Origine:
- Decimal.cs
- Origine:
- Decimal.cs
- Origine:
- 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
s
è null
.
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)
- 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 relative a utf8Text
.
Restituisce
Risultato dell'analisi utf8Text
di .
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 relative a s
.
Restituisce
Risultato dell'analisi s
di .
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 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
s
è null
.
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 s e 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)
- Origine:
- Decimal.cs
- Origine:
- Decimal.cs
- Origine:
- 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
è null
.
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)
- 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 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 utf8Text
di .
Implementazioni
Si applica a
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
- Origine:
- Decimal.cs
- Origine:
- Decimal.cs
- Origine:
- 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)
- Origine:
- Decimal.cs
- Origine:
- Decimal.cs
- Origine:
- 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.
s
è null
.
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 s s e 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
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per