Decimal.TryParse 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 da cadeia de caracteres de um número no Decimal equivalente. Um valor retornado indica se a conversão foi bem-sucedida ou falhou.
Sobrecargas
TryParse(ReadOnlySpan<Byte>, Decimal) |
Tenta converter um intervalo de caracteres UTF-8 que contém a representação de cadeia de caracteres de um número em seu equivalente decimal assinado. |
TryParse(ReadOnlySpan<Char>, Decimal) |
Converte a representação de intervalo de um número em seu equivalente de Decimal usando o formato específico da cultura e estilo especificados. Um valor retornado indica se a conversão foi bem-sucedida ou falhou. |
TryParse(String, Decimal) |
Converte a representação da cadeia de caracteres de um número no Decimal equivalente. Um valor retornado indica se a conversão foi bem-sucedida ou falhou. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal) |
Tenta analisar um intervalo de caracteres UTF-8 em um valor. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal) |
Tenta analisar um intervalo de caracteres em um valor. |
TryParse(String, IFormatProvider, Decimal) |
Tenta analisar uma cadeia de caracteres em um valor. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Decimal) |
Tenta analisar um intervalo de caracteres UTF-8 em um valor. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal) |
Converte a representação de intervalo de um número em seu equivalente de Decimal usando o formato específico da cultura e estilo especificados. Um valor retornado indica se a conversão foi bem-sucedida ou falhou. |
TryParse(String, NumberStyles, IFormatProvider, Decimal) |
Converte a representação de cadeia de caracteres de um número em seu Decimal equivalente usando o formato específico da cultura e estilo especificados. Um valor retornado indica se a conversão foi bem-sucedida ou falhou. |
TryParse(ReadOnlySpan<Byte>, Decimal)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Tenta converter um intervalo de caracteres UTF-8 que contém a representação de cadeia de caracteres de um número em seu equivalente decimal assinado.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out decimal result);
static member TryParse : ReadOnlySpan<byte> * decimal -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As Decimal) As Boolean
Parâmetros
- utf8Text
- ReadOnlySpan<Byte>
Um intervalo que contém os caracteres UTF-8 que representam o número a ser convertido.
- result
- Decimal
Quando esse método retorna, contém o valor decimal assinado equivalente ao número contido em utf8Text
se a conversão foi bem-sucedida ou zero se a conversão falhou. Este parâmetro é passado não inicializado; qualquer valor fornecido originalmente no resultado será substituído.
Retornos
true
caso utf8Text
tenha sido convertido com êxito; do contrário, false
.
Aplica-se a
TryParse(ReadOnlySpan<Char>, Decimal)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Converte a representação de intervalo de um número em seu equivalente de Decimal usando o formato específico da cultura e estilo especificados. Um valor retornado indica se a conversão foi bem-sucedida ou falhou.
public:
static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse (ReadOnlySpan<char> s, out decimal result);
static member TryParse : ReadOnlySpan<char> * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Decimal) As Boolean
Parâmetros
- s
- ReadOnlySpan<Char>
Um intervalo que contém os caracteres que representam o número a ser convertido.
- result
- Decimal
Quando retornado, esse método conterá o número Decimal equivalente ao valor numérico contido em s
, se a conversão tiver sido bem-sucedida, ou zero, se a conversão tiver falhado. A conversão falhará se o s
parâmetro for null
ou Empty, não for um número em um formato compatível com style
ou representar um número menor que Decimal.MinValue ou maior que Decimal.MaxValue. Este parâmetro é passado não inicializado; qualquer valor fornecido originalmente em result
é substituído.
Retornos
true
caso s
tenha sido convertido com êxito; do contrário, false
.
Aplica-se a
TryParse(String, Decimal)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Converte a representação da cadeia de caracteres de um número no Decimal equivalente. Um valor retornado indica se a conversão foi bem-sucedida ou falhou.
public:
static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse (string s, out decimal result);
public static bool TryParse (string? s, out decimal result);
static member TryParse : string * decimal -> bool
Public Shared Function TryParse (s As String, ByRef result As Decimal) As Boolean
Parâmetros
- s
- String
A representação da cadeia de caracteres do número a ser convertido.
- result
- Decimal
Quando retornado, esse método conterá o número Decimal equivalente ao valor numérico contido em s
, se a conversão tiver sido bem-sucedida, ou zero, se a conversão tiver falhado. A conversão falhará se o s
parâmetro for null
ou Empty, não for um número em um formato válido ou representar um número menor que Decimal.MinValue ou maior que Decimal.MaxValue. Este parâmetro é passado não inicializado; qualquer valor fornecido originalmente em result
é substituído.
Retornos
true
caso s
tenha sido convertido com êxito; do contrário, false
.
Exemplos
O exemplo a seguir usa o Decimal.TryParse(String, Decimal) método para converter as representações de cadeia de caracteres de valores numéricos em Decimal valores. Pressupõe que en-US é a cultura atual.
string value;
decimal number;
// Parse a floating-point value with a thousands separator.
value = "1,643.57";
if (Decimal.TryParse(value, out number))
Console.WriteLine(number);
else
Console.WriteLine("Unable to parse '{0}'.", value);
// Parse a floating-point value with a currency symbol and a
// thousands separator.
value = "$1,643.57";
if (Decimal.TryParse(value, out number))
Console.WriteLine(number);
else
Console.WriteLine("Unable to parse '{0}'.", value);
// Parse value in exponential notation.
value = "-1.643e6";
if (Decimal.TryParse(value, out number))
Console.WriteLine(number);
else
Console.WriteLine("Unable to parse '{0}'.", value);
// Parse a negative integer value.
value = "-1689346178821";
if (Decimal.TryParse(value, out number))
Console.WriteLine(number);
else
Console.WriteLine("Unable to parse '{0}'.", value);
// The example displays the following output to the console:
// 1643.57
// Unable to parse '$1,643.57'.
// Unable to parse '-1.643e6'.
// -1689346178821
// Parse a floating-point value with a thousands separator.
let value = "1,643.57"
match Decimal.TryParse value with
| true, number ->
printfn $"{number}"
| _ ->
printfn $"Unable to parse '{value}'."
// Parse a floating-point value with a currency symbol and a
// thousands separator.
let value = "$1,643.57"
match Decimal.TryParse value with
| true, number ->
printfn $"{number}"
| _ ->
printfn $"Unable to parse '{value}'."
// Parse value in exponential notation.
let value = "-1.643e6"
match Decimal.TryParse value with
| true, number ->
printfn $"{number}"
| _ ->
printfn $"Unable to parse '{value}'."
// Parse a negative integer value.
let value = "-1689346178821"
match Decimal.TryParse value with
| true, number ->
printfn $"{number}"
| _ ->
printfn $"Unable to parse '{value}'."
// The example displays the following output to the console:
// 1643.57
// Unable to parse '$1,643.57'.
// Unable to parse '-1.643e6'.
// -1689346178821
Dim value As String
Dim number As Decimal
' Parse a floating-point value with a thousands separator.
value = "1,643.57"
If Decimal.TryParse(value, number) Then
Console.WriteLine(number)
Else
Console.WriteLine("Unable to parse '{0}'.", value)
End If
' Parse a floating-point value with a currency symbol and a
' thousands separator.
value = "$1,643.57"
If Decimal.TryParse(value, number) Then
Console.WriteLine(number)
Else
Console.WriteLine("Unable to parse '{0}'.", value)
End If
' Parse value in exponential notation.
value = "-1.643e6"
If Decimal.TryParse(value, number)
Console.WriteLine(number)
Else
Console.WriteLine("Unable to parse '{0}'.", value)
End If
' Parse a negative integer value.
value = "-1689346178821"
If Decimal.TryParse(value, number)
Console.WriteLine(number)
Else
Console.WriteLine("Unable to parse '{0}'.", value)
End If
' The example displays the following output to the console:
' 1643.57
' Unable to parse '$1,643.57'.
' Unable to parse '-1.643e6'.
' -1689346178821
Comentários
Essa sobrecarga difere do Decimal.Parse(String) método retornando um valor booliano que indica se a operação de análise foi bem-sucedida em vez de retornar o valor numérico analisado. Ele elimina a necessidade de usar a identificação de exceções para testar um FormatException caso esse s
seja inválido e não possa ser analisado com êxito.
O parâmetro s
contém um número do formulário:
[ws] [sign] [dígitos,]dígitos[.fractional-digits][ws]
Os elementos entre colchetes ([ e ]) são opcionais. A tabela a seguir descreve cada elemento.
Elemento | Descrição |
---|---|
ws | Espaço em branco opcional. |
sign | Um sinal opcional. |
dígitos | Uma sequência de dígitos que varia de 0 a 9. |
, | Um símbolo de separador de milhares específico da cultura. |
. | Um símbolo de vírgula decimal específico de 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 . Isso 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ço em branco) que podem estar presentes no s
, use a sobrecarga do Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) método.
O parâmetro s
é 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. Para analisar uma cadeia de caracteres usando as informações de formatação de alguma outra cultura especificada, use a sobrecarga do Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) método.
Se necessário, o valor de s
é arredondado usando o arredondamento para o mais próximo.
Um objeto Decimal tem 29 dígitos de precisão. Caso s
represente um número com mais de 29 dígitos, mas com uma parte fracionária e dentro do intervalo de MaxValue e MinValue, o número é arredondado, não truncado, para 29 dígitos usando-se o arredondamento 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, NumberDecimalSeparator, CurrencyGroupSeparator e NumberGroupSeparator.
Confira também
Aplica-se a
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Tenta analisar um intervalo de caracteres UTF-8 em um valor.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = IUtf8SpanParsable<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out decimal result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * decimal -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As Decimal) As Boolean
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 à cultura sobre utf8Text
.
- result
- Decimal
No retorno, contém o resultado da análise utf8Text
com êxito ou de um valor indefinido em caso de falha.
Retornos
true
se utf8Text
tiver sido analisado com êxito; caso contrário, false
.
Aplica-se a
TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Tenta analisar um intervalo de caracteres em um valor.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = ISpanParsable<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out decimal result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As Decimal) As Boolean
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 à cultura sobre s
.
- result
- Decimal
Quando esse método retorna, contém o resultado da análise s
com êxito ou um valor indefinido sobre a falha.
Retornos
true
se s
tiver sido analisado com êxito; caso contrário, false
.
Aplica-se a
TryParse(String, IFormatProvider, Decimal)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Tenta analisar uma cadeia de caracteres em um valor.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = IParsable<System::Decimal>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out decimal result);
static member TryParse : string * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As Decimal) As Boolean
Parâmetros
- s
- String
A cadeia de caracteres a ser analisada.
- provider
- IFormatProvider
Um objeto que fornece informações de formatação específicas à cultura sobre s
.
- result
- Decimal
Quando esse método retorna, contém o resultado da análise s
com êxito ou um valor indefinido em caso de falha.
Retornos
true
se s
tiver sido analisado com êxito; caso contrário, false
.
Aplica-se a
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Decimal)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Tenta analisar um intervalo de caracteres UTF-8 em um valor.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out decimal result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * decimal -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean
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 à cultura sobre utf8Text
.
- result
- Decimal
No retorno, contém o resultado da análise utf8Text
com êxito ou de um valor indefinido em caso de falha.
Retornos
true
se utf8Text
foi analisado com êxito; caso contrário, false
.
Aplica-se a
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal)
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
- Origem:
- Decimal.cs
Converte a representação de intervalo de um número em seu equivalente de Decimal usando o formato específico da cultura e estilo especificados. Um valor retornado indica se a conversão foi bem-sucedida ou falhou.
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result);
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out decimal result);
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out decimal result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean
Parâmetros
- s
- ReadOnlySpan<Char>
Um intervalo que contém os caracteres que representam o número a ser convertido.
- style
- NumberStyles
Um combinação bit a bit de valores de enumeração que indica o formato permitido de s
. Um valor típico a ser especificado é Number.
- provider
- IFormatProvider
Um objeto que fornece informações de análise específicas da cultura sobre s
.
- result
- Decimal
Quando retornado, esse método conterá o número Decimal equivalente ao valor numérico contido em s
, se a conversão tiver sido bem-sucedida, ou zero, se a conversão tiver falhado. A conversão falhará se o s
parâmetro for null
ou Empty, não for um número em um formato compatível com style
ou representar um número menor que Decimal.MinValue ou maior que Decimal.MaxValue. Este parâmetro é passado não inicializado; qualquer valor fornecido originalmente em result
é substituído.
Retornos
true
caso s
tenha sido convertido com êxito; do contrário, false
.
Aplica-se a
TryParse(String, NumberStyles, IFormatProvider, Decimal)
- 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 formato específico da cultura e estilo especificados. Um valor retornado indica se a conversão foi bem-sucedida ou falhou.
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result);
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out decimal result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out decimal result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean
Parâmetros
- s
- String
A representação da cadeia de caracteres do número a ser convertido.
- style
- NumberStyles
Um combinação bit a bit de valores de enumeração que indica o formato permitido de s
. Um valor típico a ser especificado é Number.
- provider
- IFormatProvider
Um objeto que fornece informações de análise específicas da cultura sobre s
.
- result
- Decimal
Quando retornado, esse método conterá o número Decimal equivalente ao valor numérico contido em s
, se a conversão tiver sido bem-sucedida, ou zero, se a conversão tiver falhado. A conversão falhará se o s
parâmetro for null
ou Empty, não for um número em um formato compatível com style
ou representar um número menor que Decimal.MinValue ou maior que Decimal.MaxValue. Este parâmetro é passado não inicializado; qualquer valor fornecido originalmente em result
é substituído.
Retornos
true
caso s
tenha sido convertido com êxito; do contrário, false
.
Exceções
Exemplos
O exemplo a seguir demonstra o uso do TryParse(String, NumberStyles, IFormatProvider, Decimal) método para analisar a representação de cadeia de caracteres de um número que tem um estilo específico e é formatado usando as convenções de uma cultura específica.
string value;
NumberStyles style;
CultureInfo culture;
decimal number;
// Parse currency value using en-GB culture.
value = "£1,097.63";
style = NumberStyles.Number | NumberStyles.AllowCurrencySymbol;
culture = CultureInfo.CreateSpecificCulture("en-GB");
if (Decimal.TryParse(value, style, culture, out number))
Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
// Converted '£1,097.63' to 1097.63.
value = "1345,978";
style = NumberStyles.AllowDecimalPoint;
culture = CultureInfo.CreateSpecificCulture("fr-FR");
if (Decimal.TryParse(value, style, culture, out number))
Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
// Converted '1345,978' to 1345.978.
value = "1.345,978";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands;
culture = CultureInfo.CreateSpecificCulture("es-ES");
if (Decimal.TryParse(value, style, culture, out number))
Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
// Converted '1.345,978' to 1345.978.
value = "1 345,978";
if (Decimal.TryParse(value, style, culture, out number))
Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
// Unable to convert '1 345,978'.
// Parse currency value using en-GB culture.
let value = "£1,097.63"
let style = NumberStyles.Number ||| NumberStyles.AllowCurrencySymbol
let culture = CultureInfo.CreateSpecificCulture "en-GB"
match Decimal.TryParse(value, style, culture) with
| true, number ->
printfn $"Converted '{value}' to {number}."
| _ ->
printfn $"Unable to convert '{value}'."
// Displays:
// Converted '£1,097.63' to 1097.63.
let value = "1345,978"
let style = NumberStyles.AllowDecimalPoint
let culture = CultureInfo.CreateSpecificCulture "fr-FR"
match Decimal.TryParse(value, style, culture) with
| true, number ->
printfn $"Converted '{value}' to {number}."
| _ ->
printfn $"Unable to convert '{value}'."
// Displays:
// Converted '1345,978' to 1345.978.
let value = "1.345,978"
let style = NumberStyles.AllowDecimalPoint ||| NumberStyles.AllowThousands
let culture = CultureInfo.CreateSpecificCulture "es-ES"
match Decimal.TryParse(value, style, culture) with
| true, number ->
printfn $"Converted '{value}' to {number}."
| _ ->
printfn $"Unable to convert '{value}'."
// Displays:
// Converted '1.345,978' to 1345.978.
let value = "1 345,978"
match Decimal.TryParse(value, style, culture) with
| true, number ->
printfn $"Converted '{value}' to {number}."
| _ ->
printfn $"Unable to convert '{value}'."
// Displays:
// Unable to convert '1 345,978'.
Dim value As String
Dim style As NumberStyles
Dim culture As CultureInfo
Dim number As Decimal
' Parse currency value using en-GB culture.
value = "£1,097.63"
style = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol
culture = CultureInfo.CreateSpecificCulture("en-GB")
If Decimal.TryParse(value, style, culture, number) Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
Console.WriteLine("Unable to convert '{0}'.", value)
End If
' Displays:
' Converted '£1,097.63' to 1097.63.
value = "1345,978"
style = NumberStyles.AllowDecimalPoint
culture = CultureInfo.CreateSpecificCulture("fr-FR")
If Decimal.TryParse(value, style, culture, number) Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
Console.WriteLine("Unable to convert '{0}'.", value)
End If
' Displays:
' Converted '1345,978' to 1345.978.
value = "1.345,978"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands
culture = CultureInfo.CreateSpecificCulture("es-ES")
If Decimal.TryParse(value, style, culture, number) Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
Console.WriteLine("Unable to convert '{0}'.", value)
End If
' Displays:
' Converted '1.345,978' to 1345.978.
value = "1 345,978"
If Decimal.TryParse(value, style, culture, number) Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
Console.WriteLine("Unable to convert '{0}'.", value)
End If
' Displays:
' Unable to convert '1 345,978'.
Comentários
Essa sobrecarga difere do Decimal.Parse(String, NumberStyles, IFormatProvider) método retornando um valor booliano que indica se a operação de análise foi bem-sucedida em vez de retornar o valor numérico analisado. Ele elimina a necessidade de usar a identificação de exceções para testar um FormatException caso esse s
seja inválido e não possa ser analisado com êxito.
O parâmetro style
define o formato permitido do parâmetro s
para que a operação de análise seja bem-sucedida. Ele deve ser uma combinação de sinalizadores de bits da enumeração NumberStyles. Os seguintes membros NumberStyles não são suportados:
Dependendo do valor de style, o s
parâmetro pode incluir os seguintes elementos:
[ws] [$] [sign] [digits,]digits[.fractional-digits][e[sign]digits][ws]
Os elementos entre 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 style incluir o NumberStyles.AllowLeadingWhite sinalizador . Ele pode aparecer no final de s se style incluir o NumberStyles.AllowTrailingWhite sinalizador . |
$ | Um símbolo de moeda específico de cultura. Sua posição na cadeia de caracteres é definida pelas NumberFormatInfo.CurrencyNegativePattern propriedades ou NumberFormatInfo.CurrencyPositivePattern do NumberFormatInfo objeto retornado pelo IFormatProvider.GetFormat método do provider parâmetro . O símbolo de moeda pode ser exibido em s caso style inclua o sinalizador NumberStyles.AllowCurrencySymbol. |
sign | Um sinal opcional. |
dígitos | Uma sequência de dígitos que varia de 0 a 9. |
. | Um símbolo de vírgula decimal específico de cultura. |
dígitos fracionários | Uma sequência de dígitos que varia de 0 a 9. |
O style
parâmetro especifica o formato permitido do s
parâmetro e pode ser uma ou mais NumberStyles constantes enumeradas combinadas usando uma operação OR bit a bit. Se style
for nulo, s
será interpretado usando o NumberStyles.Number estilo .
O provider
parâmetro é uma implementação IFormatProvider como um NumberFormatInfo objeto ou CultureInfo . O parâmetro provider
fornece informações específicas da cultura usadas na análise. Caso provider
seja null
, a cultura atual do thread é usada.
Um objeto Decimal tem 29 dígitos de precisão. Caso s
represente um número com mais de 29 dígitos, mas com uma parte fracionária e dentro do intervalo de MaxValue e MinValue, o número é arredondado, não truncado, para 29 dígitos usando-se o arredondamento mais próximo.
Caso um separador esteja no parâmetro s
durante uma operação de análise e a moeda aplicável ou os separadores de casa decimal e grupo sejam iguais, a operação de análise pressupõe que o separador seja um separador decimal, e não um separador de grupo. Para obter mais informações sobre separadores, consulte CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator e NumberGroupSeparator.
Confira também
Aplica-se a
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de