Decimal.Parse Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Converte a representação da cadeia de um número para o seu Decimal equivalente.
Sobrecargas
| Name | Description |
|---|---|
| Parse(String) |
Converte a representação da cadeia de um número para o seu Decimal equivalente. |
| Parse(ReadOnlySpan<Byte>, IFormatProvider) |
Analisa um intervalo de caracteres UTF-8 num valor. |
| Parse(ReadOnlySpan<Char>, IFormatProvider) |
Divide um intervalo de caracteres num valor. |
| Parse(String, NumberStyles) |
Converte a representação da cadeia de um número num estilo especificado para o seu Decimal equivalente. |
| Parse(String, IFormatProvider) |
Converte a representação da cadeia de um número para o seu Decimal equivalente usando a informação de formato específica da cultura especificada. |
| Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider) |
Analisa um intervalo de caracteres UTF-8 num valor. |
| Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
Converte a representação span de um número para o seu Decimal equivalente usando o estilo especificado e o formato específico da cultura. |
| Parse(String, NumberStyles, IFormatProvider) |
Converte a representação da cadeia de um número para o seu Decimal equivalente usando o estilo especificado e o formato específico da cultura. |
Parse(String)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Converte a representação da cadeia de um número para o seu 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
Parâmetros
- s
- String
A representação da cadeia do número a converter.
Devoluções
O equivalente ao número contido em s.
Exceções
s é null.
s não está no formato correto.
s representa um número menor que Decimal.MinValue ou maior que Decimal.MaxValue.
Exemplos
O exemplo de código seguinte utiliza o Parse(String) método para analisar representações de cadeias de Decimal valores.
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'.
Observações
O parâmetro s contém um número da forma:
[ws][sinal][dígitos,]dígitos[.dígitos fracionários][ws]
Os elementos entre parênteses retos ([ e ]) são opcionais. A tabela a seguir descreve cada elemento.
| Elemento | Descrição |
|---|---|
| ws | Espaço em branco opcional. |
| assinar | Um sinal opcional. |
| dígitos | Uma sequência de dígitos que varia de 0 a 9. |
| , | Um símbolo separador de milhares específico de cultura. |
| . | Um símbolo de ponto decimal específico para cada cultura. |
| Dígitos fracionários | Uma sequência de dígitos que varia de 0 a 9. |
O parâmetro s é interpretado usando o NumberStyles.Number estilo. Isto significa que o espaço em branco e os separadores de milhares são permitidos, mas os símbolos de moeda não. Para definir explicitamente os elementos (como símbolos de moeda, milhares de separadores e espaços em branco) que podem estar presentes em s, use o Decimal.Parse(String, NumberStyles) ou o Decimal.Parse(String, NumberStyles, IFormatProvider) método.
O parâmetro s é analisado usando a informação de formatação inicializada NumberFormatInfo para a cultura do sistema atual. Para obter mais informações, veja CurrentInfo. Para analisar uma cadeia usando a informação de formatação de outra cultura, use o Decimal.Parse(String, IFormatProvider) método ou Decimal.Parse(String, NumberStyles, IFormatProvider) .
Se necessário, o valor de s é arredondado usando arredondamento para mais próximo.
A Decimal tem 29 dígitos de precisão. Se s representa um número que tem mais de 29 dígitos, mas tem uma parte fracionária e está dentro do intervalo de MaxValue e MinValue, o número é arredondado, não truncado, para 29 dígitos usando arredondamento para o mais próximo.
Se durante uma operação de análise sintática for encontrado um separador no s parâmetro, e os separadores decimais e de grupo de moeda ou número aplicáveis forem os mesmos, a operação de análise sintática assume que o separador é um separador decimal e não um separador de grupo. Para mais informações sobre separadores, veja CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, e NumberGroupSeparator.
Ver também
Aplica-se a
Parse(ReadOnlySpan<Byte>, IFormatProvider)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Analisa um intervalo de caracteres UTF-8 num valor.
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
Parâmetros
- utf8Text
- ReadOnlySpan<Byte>
A extensão de caracteres UTF-8 para analisar.
- provider
- IFormatProvider
Um objeto que fornece informação de formatação específica da cultura sobre utf8Text.
Devoluções
O resultado da análise sintática utf8Text.
Implementações
Aplica-se a
Parse(ReadOnlySpan<Char>, IFormatProvider)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Divide um intervalo de caracteres num valor.
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
Parâmetros
- s
- ReadOnlySpan<Char>
O número de personagens a analisar.
- provider
- IFormatProvider
Um objeto que fornece informação de formatação específica da cultura sobre s.
Devoluções
O resultado da análise sintática s.
Implementações
Aplica-se a
Parse(String, NumberStyles)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Converte a representação da cadeia de um número num estilo especificado para o seu 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
Parâmetros
- s
- String
A representação da cadeia do número a converter.
- style
- NumberStyles
Uma combinação bit a bit de NumberStyles valores que indica os elementos de estilo que podem estar presentes em s. Um valor típico a especificar é Number.
Devoluções
O Decimal número equivalente ao número contido em s conforme especificado por style.
Exceções
s é null.
s não está no formato correto.
s representa um número menor que Valor Mínimo Decimal ou maior que Valor MáximoDecimal
Exemplos
O exemplo de código seguinte utiliza o Parse(String, NumberStyles) método para analisar as representações de cadeias de Decimal valores usando a 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.
Observações
O style parâmetro define os elementos de estilo (como separadores de milhares, espaços em branco e símbolos de moeda) que são permitidos no s parâmetro para que a operação de análise sintética tenha sucesso. Deve ser uma combinação de indicadores de bits da NumberStyles enumeração. Os seguintes NumberStyles membros não são apoiados:
Dependendo do valor de style, o s parâmetro pode incluir os seguintes elementos:
[ws][$][sinal][dígitos,]dígitos[.dígitos fracionários][dígitos e[signos][ws]
Os elementos entre parênteses retos ([ e ]) são opcionais. A tabela a seguir descreve cada elemento.
| Elemento | Descrição |
|---|---|
| ws | Espaço em branco opcional. O espaço em branco pode aparecer no início de s se style inclui a NumberStyles.AllowLeadingWhite bandeira, e pode aparecer no final de s se style inclui a NumberStyles.AllowTrailingWhite bandeira. |
| $ | Um símbolo monetário específico de cada cultura. A sua posição na corda é definida pelas NumberFormatInfo.CurrencyNegativePattern propriedades e NumberFormatInfo.CurrencyPositivePattern da cultura atual. O símbolo monetário da cultura atual pode aparecer se sstyle incluir a NumberStyles.AllowCurrencySymbol bandeira. |
| assinar | Um sinal opcional. O sinal pode aparecer no início de s se inclui a style bandeira, e pode aparecer no final de NumberStyles.AllowLeadingSign se s inclui a styleNumberStyles.AllowTrailingSign bandeira. Parênteses podem ser usados s para indicar um valor negativo se style incluir a NumberStyles.AllowParentheses bandeira. |
| dígitos | Uma sequência de dígitos que varia de 0 a 9. |
| , | Um símbolo separador de milhares específico de cultura. O separador dos milhares da cultura atual pode aparecer se sstyle incluir a NumberStyles.AllowThousands bandeira. |
| . | Um símbolo de ponto decimal específico para cada cultura. O símbolo de ponto decimal da cultura atual pode aparecer em s se style incluir a NumberStyles.AllowDecimalPoint bandeira. |
| Dígitos fracionários | Uma sequência de dígitos que varia de 0 a 9. Os dígitos fracionários só podem aparecer se sstyle incluir a NumberStyles.AllowDecimalPoint bandeira. |
| e | O carácter 'e' ou 'E', que indica que o valor é representado em notação exponencial. O s parâmetro pode representar um número em notação exponencial se style incluir a NumberStyles.AllowExponent bandeira. |
Note
Quaisquer caracteres NUL terminantes (U+0000) em s são ignorados pela operação de análise, independentemente do valor do style argumento.
Uma cadeia apenas com dígitos (que corresponde ao None estilo) analisa sempre com sucesso se estiver no intervalo do Decimal tipo. Os restantes NumberStyles elementos controlam elementos que podem estar, mas não são obrigados a estar, presentes na cadeia de entrada. A tabela seguinte indica como os membros individuais NumberStyles afetam os elementos que podem estar presentes em s.
| Valor de NumberStyles | Elementos permitidos em s além dos dígitos |
|---|---|
| None | Apenas o elemento dígitos . |
| AllowDecimalPoint | Os elementos de . e de dígitos fracionários. |
| AllowExponent | O s parâmetro também pode usar notação exponencial. Esta bandeira suporta valores nos dígitosda formaE; São necessárias bandeiras adicionais para analisar com sucesso cadeias com elementos como sinais positivos ou negativos e símbolos de ponto decimal. |
| AllowLeadingWhite | O elemento ws no início de s. |
| AllowTrailingWhite | O elemento ws no final de s. |
| AllowLeadingSign | O elemento signo no início de s. |
| AllowTrailingSign | O elemento signo no final de s. |
| AllowParentheses | O elemento do signo na forma de parênteses que envolvem o valor numérico. |
| AllowThousands | O elemento , |
| AllowCurrencySymbol | O $ elemento. |
| Currency | Todos. O s parâmetro não pode representar um número hexadecimal ou um número em notação exponencial. |
| Float | O elemento ws no início ou no fim de s, sinal no início de s, e o . símbolo. O s parâmetro também pode usar notação exponencial. |
| Number | Os ws, sign, , e . elementos. |
| Any | Todos os estilos, exceto s , não podem representar um número hexadecimal. |
O s parâmetro é analisado usando a informação de formatação num NumberFormatInfo objeto inicializado para a cultura do sistema atual. Para obter mais informações, veja CurrentInfo.
A Decimal tem 29 dígitos de precisão. Se s representa um número que tem mais de 29 dígitos, mas tem uma parte fracionária e está dentro do intervalo de MaxValue e MinValue, o número é arredondado, não truncado, para 29 dígitos usando arredondamento para o mais próximo.
Se um separador for encontrado no s parâmetro durante uma operação de análise sintática, styles incluir os NumberStyles.AllowThousands valores e NumberStyles.AllowDecimalPoint e os divisores decimais e de grupo de moeda ou número aplicáveis forem os mesmos, a operação de análise sintática assume que o separador é um separador decimal e não um separador de grupo. Para mais informações sobre separadores, veja CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, e NumberGroupSeparator.
Ver também
Aplica-se a
Parse(String, IFormatProvider)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Converte a representação da cadeia de um número para o seu Decimal equivalente usando a informação de formato específica da cultura especificada.
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
Parâmetros
- s
- String
A representação da cadeia do número a converter.
- provider
- IFormatProvider
Um IFormatProvider que fornece informação de análise sintática específica de cultura sobre s.
Devoluções
O Decimal número equivalente ao número contido em s conforme especificado por provider.
Implementações
Exceções
s é null.
s não tem o formato correto.
s representa um número menor que Decimal.MinValue ou maior que Decimal.MaxValue.
Exemplos
O exemplo seguinte é o handler de eventos com clique de botão de um formulário Web. Utiliza o array devolvido pela HttpRequest.UserLanguages propriedade para determinar a localização do utilizador. De seguida, instância é um CultureInfo objeto que corresponde a esse local. O NumberFormatInfo objeto que pertence a esse CultureInfo objeto é então passado ao Parse(String, IFormatProvider) método para converter a entrada do utilizador num Decimal valor.
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
Observações
Esta sobrecarga do Parse(String, IFormatProvider) método é comumente usada para converter texto que pode ser formatado de várias formas para um Decimal valor. Por exemplo, pode ser usado para converter o texto introduzido por um utilizador numa caixa de texto HTML para um valor numérico.
O s parâmetro contém um número da forma:
[ws][sinal][dígitos,]dígitos[.dígitos fracionários][ws]
Os elementos entre parênteses retos ([ e ]) são opcionais. A tabela a seguir descreve cada elemento.
| Elemento | Descrição |
|---|---|
| ws | Espaço em branco opcional. |
| assinar | Um sinal opcional. |
| dígitos | Uma sequência de dígitos que varia de 0 a 9. |
| , | Um símbolo separador de milhares específico de cultura. |
| . | Um símbolo de ponto decimal específico para cada cultura. |
| Dígitos fracionários | Uma sequência de dígitos que varia de 0 a 9. |
O s parâmetro é interpretado usando o NumberStyles.Number estilo. Isto significa que o espaço em branco e os separadores de milhares são permitidos, mas os símbolos de moeda não. Para definir explicitamente os elementos (como símbolos de moeda, separadores de milhares e espaços em branco) que podem estar presentes em s, use o Decimal.Parse(String, NumberStyles, IFormatProvider) método.
O provider parâmetro é uma IFormatProvider implementação, como um NumberFormatInfo objeto ou CultureInfo . O provider parâmetro fornece informação específica da cultura utilizada na análise sintática. Se provider for null, usa-se a cultura atual do fio.
Um Decimal objeto tem 29 dígitos de precisão. Se s representa um número que tem mais de 29 dígitos, mas tem uma parte fracionária e está dentro do intervalo de MaxValue e MinValue, o número é arredondado, não truncado, para 29 dígitos usando arredondamento para o mais próximo.
Se um separador for encontrado no s parâmetro durante uma operação de análise sintática, e os separadores decimais e de grupo de moeda ou número aplicáveis forem os mesmos, a operação de análise analisar assume que o separador é um separador decimal e não um separador de grupo. Para mais informações sobre separadores, veja CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, e NumberGroupSeparator.
Ver também
Aplica-se a
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Analisa um intervalo de caracteres UTF-8 num valor.
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
Parâmetros
- utf8Text
- ReadOnlySpan<Byte>
A extensão de caracteres UTF-8 para analisar.
- style
- NumberStyles
Uma combinação bit a bit de estilos numéricos que pode estar presente em utf8Text.
- provider
- IFormatProvider
Um objeto que fornece informação de formatação específica da cultura sobre utf8Text.
Devoluções
O resultado da análise sintática utf8Text.
Implementações
Aplica-se a
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Converte a representação span de um número para o seu Decimal equivalente usando o estilo especificado e o formato específico da 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
Parâmetros
- s
- ReadOnlySpan<Char>
O espaço que contém os caracteres que representam o número a converter.
- style
- NumberStyles
Uma combinação bit a bit de NumberStyles valores que indica os elementos de estilo que podem estar presentes em s. Um valor típico a especificar é Number.
- provider
- IFormatProvider
Um IFormatProvider objeto que fornece informação específica da cultura sobre o formato de s.
Devoluções
O Decimal número equivalente ao número contido em s conforme especificado por style e provider.
Implementações
Aplica-se a
Parse(String, NumberStyles, IFormatProvider)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Converte a representação da cadeia de um número para o seu Decimal equivalente usando o estilo especificado e o formato específico da 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
Parâmetros
- s
- String
A representação da cadeia do número a converter.
- style
- NumberStyles
Uma combinação bit a bit de NumberStyles valores que indica os elementos de estilo que podem estar presentes em s. Um valor típico a especificar é Number.
- provider
- IFormatProvider
Um IFormatProvider objeto que fornece informação específica da cultura sobre o formato de s.
Devoluções
O Decimal número equivalente ao número contido em s conforme especificado por style e provider.
Implementações
Exceções
s não está no formato correto.
s representa um número menor que Decimal.MinValue ou maior que Decimal.MaxValue.
s é null.
Exemplos
O exemplo seguinte utiliza uma variedade de parâmetros e styleprovider para analisar as representações das cadeias de Decimal valores.
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.
Observações
O style parâmetro define o formato permitido do s parâmetro para que a operação de análise sintática tenha sucesso. Deve ser uma combinação de indicadores de bits da NumberStyles enumeração. Os seguintes NumberStyles membros não são apoiados:
Dependendo do valor de style, o s parâmetro pode incluir os seguintes elementos:
[ws][$][sinal][dígitos,]dígitos[.dígitos fracionários][dígitos e[signos][ws]
Os elementos entre parênteses retos ([ e ]) são opcionais. A tabela a seguir descreve cada elemento.
| Elemento | Descrição |
|---|---|
| $ | Um símbolo monetário específico de cada cultura. A sua posição na cadeia é definida pelas CurrencyNegativePattern propriedades e CurrencyPositivePattern do NumberFormatInfo objeto devolvidas pelo GetFormat método do provider parâmetro. O símbolo da moeda pode aparecer se sstyle incluir a NumberStyles.AllowCurrencySymbol bandeira. |
| ws | Espaço em branco opcional. O espaço em branco pode aparecer no início de s se style inclui a NumberStyles.AllowLeadingWhite bandeira, e pode aparecer no final de s se style inclui a NumberStyles.AllowTrailingWhite bandeira. |
| assinar | Um sinal opcional. O sinal pode aparecer no início de s se inclui a style bandeira, e pode aparecer no final de NumberStyles.AllowLeadingSign se s inclui a styleNumberStyles.AllowTrailingSign bandeira. Parênteses podem ser usados s para indicar um valor negativo se style incluir a NumberStyles.AllowParentheses bandeira. |
| dígitos | Uma sequência de dígitos que varia de 0 a 9. |
| , | Um símbolo separador de milhares específico de cultura. O separador dos milhares da cultura definido por provider pode aparecer em s se style inclui a NumberStyles.AllowThousands bandeira. |
| . | Um símbolo de ponto decimal específico para cada cultura. O símbolo do ponto decimal da cultura definida por provider pode aparecer em s se style incluir a NumberStyles.AllowDecimalPoint bandeira. |
| Dígitos fracionários | Uma sequência de dígitos que varia de 0 a 9. Os dígitos fracionários só podem aparecer se sstyle incluir a NumberStyles.AllowDecimalPoint bandeira. |
| e | O carácter 'e' ou 'E', que indica que o valor é representado em notação exponencial. O s parâmetro pode representar um número em notação exponencial se style incluir a NumberStyles.AllowExponent bandeira. |
Note
Quaisquer caracteres NUL terminantes (U+0000) em s são ignorados pela operação de análise, independentemente do valor do style argumento.
Uma cadeia apenas com dígitos (que corresponde ao None estilo) analisa sempre com sucesso se estiver no intervalo do Decimal tipo. Os restantes NumberStyles elementos controlam elementos que podem estar, mas não são obrigados a estar, presentes na cadeia de entrada. A tabela seguinte indica como os membros individuais NumberStyles afetam os elementos que podem estar presentes em s.
| Valor de NumberStyles | Elementos permitidos em s além dos dígitos |
|---|---|
| None | Apenas o elemento dígitos . |
| AllowDecimalPoint | Os elementos de . e de dígitos fracionários. |
| AllowExponent | O s parâmetro também pode usar notação exponencial. Esta bandeira suporta valores nos dígitosda formaE; São necessárias bandeiras adicionais para analisar com sucesso cadeias com elementos como sinais positivos ou negativos e símbolos de ponto decimal. |
| AllowLeadingWhite | O elemento ws no início de s. |
| AllowTrailingWhite | O elemento ws no final de s. |
| AllowLeadingSign | O elemento signo no início de s. |
| AllowTrailingSign | O elemento signo no final de s. |
| AllowParentheses | O elemento do signo na forma de parênteses que envolvem o valor numérico. |
| AllowThousands | O elemento , |
| AllowCurrencySymbol | O $ elemento. |
| Currency | Todos. O s parâmetro não pode representar um número hexadecimal ou um número em notação exponencial. |
| Float | O elemento ws no início ou fim de s, sinal no início de s, e o símbolo . O s parâmetro também pode usar notação exponencial. |
| Number | Os wselementos, sign, ,, e . |
| Any | Todos os estilos, exceto s , não podem representar um número hexadecimal. |
O provider parâmetro é uma IFormatProvider implementação, como um NumberFormatInfo objeto ou CultureInfo . O provider parâmetro fornece informação específica da cultura utilizada na análise sintática. Se provider for null, usa-se a cultura atual do fio.
Um Decimal objeto tem 29 dígitos de precisão. Se s representa um número que tem mais de 29 dígitos, mas tem uma parte fracionária e está dentro do intervalo de MaxValue e MinValue, o número é arredondado, não truncado, para 29 dígitos usando arredondamento para o mais próximo.
Se um separador for encontrado no s parâmetro durante uma operação de análise sintática, e os separadores decimais e de grupo de moeda ou número aplicáveis forem os mesmos, a operação de análise analisar assume que o separador é um separador decimal e não um separador de grupo. Para mais informações sobre separadores, veja CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, e NumberGroupSeparator.