Decimal.Parse Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Converte a representação de cadeia de caracteres de um número em seu Decimal equivalente.
Sobrecargas
| Nome | Description |
|---|---|
| Parse(String) |
Converte a representação de cadeia de caracteres de um número em seu Decimal equivalente. |
| Parse(ReadOnlySpan<Byte>, IFormatProvider) |
Analisa um intervalo de caracteres UTF-8 em um valor. |
| Parse(ReadOnlySpan<Char>, IFormatProvider) |
Analisa um intervalo de caracteres em um valor. |
| Parse(String, NumberStyles) |
Converte a representação de cadeia de caracteres de um número em um estilo especificado em seu Decimal equivalente. |
| Parse(String, IFormatProvider) |
Converte a representação de cadeia de caracteres de um número em seu Decimal equivalente usando as informações de formato específicas da cultura especificadas. |
| Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider) |
Analisa um intervalo de caracteres UTF-8 em um valor. |
| Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
Converte a representação de intervalo de um número em seu Decimal equivalente usando o estilo especificado e o formato específico da cultura. |
| Parse(String, NumberStyles, IFormatProvider) |
Converte a representação de cadeia de caracteres de um número em seu Decimal equivalente usando o estilo e o formato específico da cultura especificados. |
Parse(String)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Converte a representação de cadeia de caracteres de um número em 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 de cadeia de caracteres do número a ser convertido.
Retornos
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 a seguir usa o Parse(String) método para analisar representações de cadeia de caracteres 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'.
Comentários
O parâmetro s contém um número do formulário:
[ws] [sign] [dígitos,]dígitos[.fractional-digits][ws]
Elementos em colchetes ([ 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 variando de 0 a 9. |
| , | Um símbolo separador de milhares específico à cultura. |
| . | Um símbolo de ponto decimal específico da cultura. |
| dígitos fracionários | Uma sequência de dígitos variando de 0 a 9. |
O parâmetro s é interpretado usando o NumberStyles.Number estilo. Isso significa que o espaço em branco e milhares de separadores são permitidos, mas os símbolos de moeda não são. Para definir explicitamente os elementos (como símbolos de moeda, milhares de separadores e espaço em sbranco) que podem estar presentes, use o método ou o Decimal.Parse(String, NumberStyles)Decimal.Parse(String, NumberStyles, IFormatProvider) método.
O parâmetro s é analisado usando as informações de formatação em um NumberFormatInfo inicializado para a cultura atual do sistema. Para obter mais informações, consulte CurrentInfo. Para analisar uma cadeia de caracteres usando as informações de formatação de alguma outra cultura, use o método ou Decimal.Parse(String, NumberStyles, IFormatProvider) o Decimal.Parse(String, IFormatProvider) método.
Se necessário, o valor será s arredondado usando o arredondamento para o mais próximo.
Um Decimal tem 29 dígitos de precisão. Se s representar um número com mais de 29 dígitos, mas tiver uma parte fracionária e estiver dentro do intervalo de MaxValue e MinValue, o número for arredondado, não truncado, para 29 dígitos usando arredondamento para mais próximo.
Se durante uma operação de análise um separador for encontrado no s parâmetro e a moeda ou número decimais aplicáveis e separadores de grupo forem iguais, a operação de análise pressupõe que o separador seja um separador decimal em vez de um separador de grupo. Para obter mais informações sobre separadores, consulte CurrencyDecimalSeparator, NumberDecimalSeparatore CurrencyGroupSeparatorNumberGroupSeparator.
Confira 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 em um 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>
O intervalo de caracteres UTF-8 a serem analisados.
- provider
- IFormatProvider
Um objeto que fornece informações de formatação específicas da cultura sobre utf8Text.
Retornos
O resultado da análise 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
Analisa um intervalo de caracteres em um 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 intervalo de caracteres a serem analisados.
- provider
- IFormatProvider
Um objeto que fornece informações de formatação específicas da cultura sobre s.
Retornos
O resultado da análise 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 de cadeia de caracteres de um número em um estilo especificado em 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 de cadeia de caracteres do número a ser convertido.
- 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 ser especificado é Number.
Retornos
O Decimal número equivalente ao número contido conforme s especificado por style.
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 a seguir usa o Parse(String, NumberStyles) método para analisar as representações de cadeia de caracteres 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.
Comentários
O style parâmetro define os elementos de estilo (como milhares de separadores, espaço em branco e símbolos de moeda) que são permitidos no s parâmetro para que a operação de análise seja bem-sucedida. Deve ser uma combinação de sinalizadores de bits da NumberStyles enumeração. Não há suporte para os seguintes NumberStyles membros:
Dependendo do valor de style, o s parâmetro pode incluir os seguintes elementos:
[ws] [$] [sign] [dígitos,]dígitos[.fractional-digits][e[sign]digits][ws]
Elementos em colchetes ([ 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 incluir o NumberStyles.AllowLeadingWhite sinalizador e pode aparecer no final de s se style incluir o NumberStyles.AllowTrailingWhitestyle sinalizador. |
| $ | Um símbolo de moeda específico à cultura. Sua posição na cadeia de caracteres é definida pelas propriedades e NumberFormatInfo.CurrencyNegativePattern pela NumberFormatInfo.CurrencyPositivePattern cultura atual. O símbolo de moeda da cultura atual poderá aparecer s se style incluir o NumberStyles.AllowCurrencySymbol sinalizador. |
| assinar | Um sinal opcional. O sinal pode aparecer no início de s se incluir o NumberStyles.AllowLeadingSign sinalizador e pode aparecer no final de s se style incluir o NumberStyles.AllowTrailingSignstyle sinalizador. Parênteses podem ser usados s para indicar um valor negativo se style incluir o NumberStyles.AllowParentheses sinalizador. |
| Dígitos | Uma sequência de dígitos variando de 0 a 9. |
| , | Um símbolo separador de milhares específico à cultura. O separador de milhares da cultura atual poderá aparecer s se style incluir o NumberStyles.AllowThousands sinalizador. |
| . | Um símbolo de ponto decimal específico da cultura. O símbolo de ponto decimal da cultura atual poderá aparecer s se style incluir o NumberStyles.AllowDecimalPoint sinalizador. |
| dígitos fracionários | Uma sequência de dígitos variando de 0 a 9. Dígitos fracionários só poderão aparecer s se style incluir o NumberStyles.AllowDecimalPoint sinalizador. |
| e | O caractere 'e' ou 'E', que indica que o valor é representado na notação exponencial. O s parâmetro pode representar um número na notação exponencial se style incluir o NumberStyles.AllowExponent sinalizador. |
Nota
Todos os caracteres s NUL de terminação (U+0000) são ignorados pela operação de análise, independentemente do valor do style argumento.
Uma cadeia de caracteres somente com dígitos (que None corresponde ao estilo) sempre será analisada com êxito se estiver no intervalo do Decimal tipo. Os elementos de controle de membros restantes NumberStyles que podem estar, mas não precisam estar presentes na cadeia de caracteres de entrada. A tabela a seguir indica como os membros individuais NumberStyles afetam os elementos que podem estar presentes em s.
| Valor de NumberStyles | Elementos permitidos em s além de dígitos |
|---|---|
| None | Somente o elemento de dígitos . |
| AllowDecimalPoint | Os elementos . e de dígitos fracionários . |
| AllowExponent | O s parâmetro também pode usar notação exponencial. Esse sinalizador dá suporte a valores nos dígitosE dosdígitos de formulário; sinalizadores adicionais são necessários para analisar com êxito cadeias de caracteres com elementos como sinais positivos ou negativos e símbolos de ponto decimais. |
| AllowLeadingWhite | O elemento ws no início de s. |
| AllowTrailingWhite | O elemento ws no final de s. |
| AllowLeadingSign | O elemento sign no início de s. |
| AllowTrailingSign | O elemento sign no final de s. |
| AllowParentheses | O elemento sign na forma de parênteses que inclui o valor numérico. |
| AllowThousands | O elemento . |
| AllowCurrencySymbol | O $ elemento. |
| Currency | Todo. 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 final de s, assinar no início e so . símbolo. O s parâmetro também pode usar notação exponencial. |
| Number | O ws, signe ,. elementos. |
| Any | Todos os estilos, exceto s não podem representar um número hexadecimal. |
O s parâmetro é analisado usando as informações de formatação em um NumberFormatInfo objeto inicializado para a cultura atual do sistema. Para obter mais informações, consulte CurrentInfo.
Um Decimal tem 29 dígitos de precisão. Se s representar um número com mais de 29 dígitos, mas tiver uma parte fracionária e estiver dentro do intervalo de MaxValue e MinValue, o número for arredondado, não truncado, para 29 dígitos usando arredondamento para mais próximo.
Se um separador for encontrado no s parâmetro durante uma operação de análise, styles incluir os NumberStyles.AllowThousands valores e NumberStyles.AllowDecimalPoint a moeda aplicável ou número decimal e separadores de grupo serão os mesmos, a operação de análise pressupõe que o separador seja um separador decimal em vez de um separador de grupo. Para obter mais informações sobre separadores, consulte CurrencyDecimalSeparator, NumberDecimalSeparatore CurrencyGroupSeparatorNumberGroupSeparator.
Confira 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 de cadeia de caracteres de um número em seu Decimal equivalente usando as informações de formato específicas da cultura especificadas.
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 de cadeia de caracteres do número a ser convertido.
- provider
- IFormatProvider
Um IFormatProvider que fornece informações de análise específicas da cultura sobre s.
Retornos
O Decimal número equivalente ao número contido conforme s especificado por provider.
Implementações
Exceções
s é null.
s não é do formato correto.
s representa um número menor que Decimal.MinValue ou maior que Decimal.MaxValue.
Exemplos
O exemplo a seguir é o manipulador de eventos de clique de botão de um formulário da Web. Ele usa a matriz retornada pela HttpRequest.UserLanguages propriedade para determinar a localidade do usuário. Em seguida, cria uma instância de um CultureInfo objeto que corresponde a essa localidade. O NumberFormatInfo objeto que pertence a esse CultureInfo objeto é então passado para o Parse(String, IFormatProvider) método para converter a entrada do usuário em um 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
Comentários
Essa sobrecarga do Parse(String, IFormatProvider) método é comumente usada para converter texto que pode ser formatado de várias maneiras para um Decimal valor. Por exemplo, ele pode ser usado para converter o texto inserido por um usuário em uma caixa de texto HTML em um valor numérico.
O s parâmetro contém um número do formulário:
[ws] [sign] [dígitos,]dígitos[.fractional-digits][ws]
Elementos em colchetes ([ 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 variando de 0 a 9. |
| , | Um símbolo separador de milhares específico à cultura. |
| . | Um símbolo de ponto decimal específico da cultura. |
| dígitos fracionários | Uma sequência de dígitos variando de 0 a 9. |
O s parâmetro é interpretado usando o NumberStyles.Number estilo. Isso significa que o espaço em branco e milhares de separadores são permitidos, mas os símbolos de moeda não são. Para definir explicitamente os elementos (como símbolos de moeda, milhares de separadores e espaço em sbranco) que podem estar presentes, use o Decimal.Parse(String, NumberStyles, IFormatProvider) método.
O provider parâmetro é uma implementaçãoIFormatProvider, como um objeto ou CultureInfo um NumberFormatInfo objeto. O provider parâmetro fornece informações específicas da cultura usadas na análise. Se provider for null, a cultura atual do thread será usada.
Um Decimal objeto tem 29 dígitos de precisão. Se s representar um número com mais de 29 dígitos, mas tiver uma parte fracionária e estiver dentro do intervalo de MaxValue e MinValue, o número for arredondado, não truncado, para 29 dígitos usando arredondamento para mais próximo.
Se um separador for encontrado no s parâmetro durante uma operação de análise e a moeda ou número decimais aplicáveis e separadores de grupo forem iguais, a operação de análise pressupõe que o separador seja um separador decimal em vez de um separador de grupo. Para obter mais informações sobre separadores, consulte CurrencyDecimalSeparator, NumberDecimalSeparatore CurrencyGroupSeparatorNumberGroupSeparator.
Confira 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 em um 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>
O intervalo de caracteres UTF-8 a serem analisados.
- style
- NumberStyles
Uma combinação bit a bit de estilos numéricos que podem estar presentes em utf8Text.
- provider
- IFormatProvider
Um objeto que fornece informações de formatação específicas da cultura sobre utf8Text.
Retornos
O resultado da análise 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 de intervalo de um número em 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 intervalo que contém os caracteres que representam o número a ser convertido.
- 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 ser especificado é Number.
- provider
- IFormatProvider
Um IFormatProvider objeto que fornece informações específicas da cultura sobre o formato de s.
Retornos
O Decimal número equivalente ao número contido conforme s 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 de cadeia de caracteres de um número em seu Decimal equivalente usando o estilo e o formato específico da cultura especificados.
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 de cadeia de caracteres do número a ser convertido.
- 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 ser especificado é Number.
- provider
- IFormatProvider
Um IFormatProvider objeto que fornece informações específicas da cultura sobre o formato de s.
Retornos
O Decimal número equivalente ao número contido conforme s 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 a seguir usa uma variedade de style parâmetros e provider para analisar as representações de cadeia de caracteres 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.
Comentários
O style parâmetro define o formato permitido do s parâmetro para que a operação de análise seja bem-sucedida. Deve ser uma combinação de sinalizadores de bits da NumberStyles enumeração. Não há suporte para os seguintes NumberStyles membros:
Dependendo do valor de style, o s parâmetro pode incluir os seguintes elementos:
[ws] [$] [sign] [dígitos,]dígitos[.fractional-digits][e[sign]digits][ws]
Elementos em colchetes ([ e ]) são opcionais. A tabela a seguir descreve cada elemento.
| Elemento | Descrição |
|---|---|
| $ | Um símbolo de moeda específico à cultura. Sua posição na cadeia de caracteres é definida pela CurrencyNegativePattern propriedade e CurrencyPositivePattern pelo NumberFormatInfo objeto retornado pelo GetFormat método do provider parâmetro. O símbolo de moeda poderá aparecer s se style incluir o NumberStyles.AllowCurrencySymbol sinalizador. |
| Ws | Espaço em branco opcional. O espaço em branco pode aparecer no início de s se incluir o NumberStyles.AllowLeadingWhite sinalizador e pode aparecer no final de s se style incluir o NumberStyles.AllowTrailingWhitestyle sinalizador. |
| assinar | Um sinal opcional. O sinal pode aparecer no início de s se incluir o NumberStyles.AllowLeadingSign sinalizador e pode aparecer no final de s se style incluir o NumberStyles.AllowTrailingSignstyle sinalizador. Parênteses podem ser usados s para indicar um valor negativo se style incluir o NumberStyles.AllowParentheses sinalizador. |
| Dígitos | Uma sequência de dígitos variando de 0 a 9. |
| , | Um símbolo separador de milhares específico à cultura. O separador de milhares da cultura definida por provider poderá aparecer se styles incluir o NumberStyles.AllowThousands sinalizador. |
| . | Um símbolo de ponto decimal específico da cultura. O símbolo de ponto decimal da cultura definida por provider pode aparecer se sstyle incluir o NumberStyles.AllowDecimalPoint sinalizador. |
| dígitos fracionários | Uma sequência de dígitos variando de 0 a 9. Dígitos fracionários só poderão aparecer s se style incluir o NumberStyles.AllowDecimalPoint sinalizador. |
| e | O caractere 'e' ou 'E', que indica que o valor é representado na notação exponencial. O s parâmetro pode representar um número na notação exponencial se style incluir o NumberStyles.AllowExponent sinalizador. |
Nota
Todos os caracteres s NUL de terminação (U+0000) são ignorados pela operação de análise, independentemente do valor do style argumento.
Uma cadeia de caracteres somente com dígitos (que None corresponde ao estilo) sempre será analisada com êxito se estiver no intervalo do Decimal tipo. Os elementos de controle de membros restantes NumberStyles que podem estar, mas não precisam estar presentes na cadeia de caracteres de entrada. A tabela a seguir indica como os membros individuais NumberStyles afetam os elementos que podem estar presentes em s.
| Valor de NumberStyles | Elementos permitidos em s além de dígitos |
|---|---|
| None | Somente o elemento de dígitos . |
| AllowDecimalPoint | Os elementos . e de dígitos fracionários . |
| AllowExponent | O s parâmetro também pode usar notação exponencial. Esse sinalizador dá suporte a valores nos dígitosE dosdígitos de formulário; sinalizadores adicionais são necessários para analisar com êxito cadeias de caracteres com elementos como sinais positivos ou negativos e símbolos de ponto decimais. |
| AllowLeadingWhite | O elemento ws no início de s. |
| AllowTrailingWhite | O elemento ws no final de s. |
| AllowLeadingSign | O elemento sign no início de s. |
| AllowTrailingSign | O elemento sign no final de s. |
| AllowParentheses | O elemento sign na forma de parênteses que inclui o valor numérico. |
| AllowThousands | O elemento . |
| AllowCurrencySymbol | O $ elemento. |
| Currency | Todo. 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 final de s, assinar no início e so 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 implementaçãoIFormatProvider, como um objeto ou CultureInfo um NumberFormatInfo objeto. O provider parâmetro fornece informações específicas da cultura usadas na análise. Se provider for null, a cultura atual do thread será usada.
Um Decimal objeto tem 29 dígitos de precisão. Se s representar um número com mais de 29 dígitos, mas tiver uma parte fracionária e estiver dentro do intervalo de MaxValue e MinValue, o número for arredondado, não truncado, para 29 dígitos usando arredondamento para mais próximo.
Se um separador for encontrado no s parâmetro durante uma operação de análise e a moeda ou número decimais aplicáveis e separadores de grupo forem iguais, a operação de análise pressupõe que o separador seja um separador decimal em vez de um separador de grupo. Para obter mais informações sobre separadores, consulte CurrencyDecimalSeparator, NumberDecimalSeparatore CurrencyGroupSeparatorNumberGroupSeparator.