Decimal.TryParse Método

Definición

Convierte la representación de cadena de un número en su Decimal equivalente. Un valor devuelto indica si la conversión se realizó correctamente o no.

Sobrecargas

TryParse(ReadOnlySpan<Byte>, Decimal)

Intenta convertir un intervalo de caracteres UTF-8 que contiene la representación de cadena de un número en su equivalente decimal firmado.

TryParse(ReadOnlySpan<Char>, Decimal)

Convierte la representación de intervalo de un número en su Decimal equivalente mediante el formato específico de la referencia cultural. Un valor devuelto indica si la conversión se realizó correctamente o no.

TryParse(String, Decimal)

Convierte la representación de cadena de un número en su Decimal equivalente. Un valor devuelto indica si la conversión se realizó correctamente o no.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal)

Intenta analizar un intervalo de caracteres UTF-8 en un valor.

TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)

Intenta analizar un intervalo de caracteres en un valor.

TryParse(String, IFormatProvider, Decimal)

Intenta analizar una cadena en un valor.

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Decimal)

Intenta analizar un intervalo de caracteres UTF-8 en un valor.

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal)

Convierte la representación de intervalo de un número en su Decimal equivalente mediante el estilo y el formato específico de la referencia cultural especificados. Un valor devuelto indica si la conversión se realizó correctamente o no.

TryParse(String, NumberStyles, IFormatProvider, Decimal)

Convierte la representación de cadena de un número en su Decimal equivalente mediante el estilo y el formato específico de la referencia cultural especificados. Un valor devuelto indica si la conversión se realizó correctamente o no.

TryParse(ReadOnlySpan<Byte>, Decimal)

Source:
Decimal.cs
Source:
Decimal.cs

Intenta convertir un intervalo de caracteres UTF-8 que contiene la representación de cadena de un número en su equivalente decimal firmado.

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>

Intervalo que contiene los caracteres UTF-8 que representan el número que se va a convertir.

result
Decimal

Cuando este método devuelve, contiene el valor decimal firmado equivalente al número contenido en utf8Text si la conversión se realizó correctamente o cero si se produjo un error en la conversión. Este parámetro se pasa sin inicializar; Cualquier valor proporcionado originalmente en el resultado se sobrescribirá.

Devoluciones

true si utf8Text se convirtió correctamente; de lo contrario, false.

Se aplica a

TryParse(ReadOnlySpan<Char>, Decimal)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Convierte la representación de intervalo de un número en su Decimal equivalente mediante el formato específico de la referencia cultural. Un valor devuelto indica si la conversión se realizó correctamente o no.

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>

Intervalo que contiene los caracteres que representan el número que se va a convertir.

result
Decimal

Cuando este método devuelve , contiene el número de Decimal equivalente al valor numérico contenido en s, si la conversión se realizó correctamente o cero si se produjo un error en la conversión. Se produce un error en la conversión si el parámetro s es null o Empty o representa un número menor que Decimal.MinValue o mayor que Decimal.MaxValue. Este parámetro se pasa uininitialized; cualquier valor proporcionado originalmente en result se sobrescribe.

Devoluciones

true si s se convirtió correctamente; de lo contrario, false.

Se aplica a

TryParse(String, Decimal)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Convierte la representación de cadena de un número en su Decimal equivalente. Un valor devuelto indica si la conversión se realizó correctamente o no.

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

Representación de cadena del número que se va a convertir.

result
Decimal

Cuando este método devuelve , contiene el número de Decimal equivalente al valor numérico contenido en s, si la conversión se realizó correctamente o cero si se produjo un error en la conversión. Se produce un error en la conversión si el parámetro s es null o Empty, no es un número en un formato válido o representa un número menor que Decimal.MinValue o mayor que Decimal.MaxValue. Este parámetro se pasa uininitialized; cualquier valor proporcionado originalmente en result se sobrescribe.

Devoluciones

true si s se convirtió correctamente; de lo contrario, false.

Ejemplos

En el ejemplo siguiente se usa el método Decimal.TryParse(String, Decimal) para convertir las representaciones de cadena de valores numéricos en Decimal valores. Se supone que en-US es la referencia cultural actual.

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

Comentarios

Esta sobrecarga difiere del método Decimal.Parse(String) devolviendo un valor booleano que indica si la operación de análisis se realizó correctamente en lugar de devolver el valor numérico analizado. Elimina la necesidad de usar el control de excepciones para probar un FormatException en caso de que s no sea válido y no se pueda analizar correctamente.

El parámetro s contiene un número del formulario:

[ws] [sign] [digits,]digits[.fractional-digits][ws]

Los elementos entre corchetes ([ y ]) son opcionales. En la tabla siguiente se describe cada elemento.

Elemento Descripción
ws Espacio en blanco opcional.
de signo Un signo opcional.
de dígitos de Secuencia de dígitos que van de 0 a 9.
, Símbolo separador de miles específico de la referencia cultural.
. Símbolo de separador decimal específico de la referencia cultural.
fracciones de dígitos Secuencia de dígitos que van de 0 a 9.

El s de parámetro se interpreta con el estilo NumberStyles.Number. Esto significa que se permiten espacios en blanco y separadores de miles, pero no se permiten símbolos de moneda. Para definir explícitamente los elementos (como símbolos de moneda, separadores de miles y espacios en blanco) que pueden estar presentes en s, use la sobrecarga del método Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal).

El parámetro s se analiza mediante la información de formato de un objeto NumberFormatInfo inicializado para la referencia cultural del sistema actual. Para obtener más información, consulte CurrentInfo. Para analizar una cadena mediante la información de formato de alguna otra referencia cultural especificada, use la sobrecarga del método Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal).

Si es necesario, el valor de s se redondea mediante redondeo al más cercano.

Un objeto Decimal tiene 29 dígitos de precisión. Si s representa un número que tiene más de 29 dígitos, pero tiene una parte fraccionaria y está dentro del intervalo de MaxValue y MinValue, el número se redondea, no trunca, a 29 dígitos con redondeo a más cercano.

Si durante una operación de análisis se encuentra un separador en el parámetro s y los separadores decimales y de grupo aplicables son iguales, la operación de análisis supone que el separador es un separador decimal en lugar de un separador de grupo. Para obtener más información sobre los separadores, vea CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatory NumberGroupSeparator.

Consulte también

Se aplica a

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal)

Source:
Decimal.cs
Source:
Decimal.cs

Intenta analizar un intervalo de caracteres UTF-8 en un 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>

Intervalo de caracteres UTF-8 que se van a analizar.

provider
IFormatProvider

Objeto que proporciona información de formato específica de la referencia cultural sobre utf8Text.

result
Decimal

Al devolver, contiene el resultado de analizar correctamente utf8Text o un valor indefinido en caso de error.

Devoluciones

true si utf8Text se ha analizado correctamente; de lo contrario, false.

Se aplica a

TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Intenta analizar un intervalo de caracteres en un 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>

Intervalo de caracteres que se va a analizar.

provider
IFormatProvider

Objeto que proporciona información de formato específica de la referencia cultural sobre s.

result
Decimal

Cuando este método devuelve , contiene el resultado de analizar correctamente so un valor indefinido en caso de error.

Devoluciones

true si s se ha analizado correctamente; de lo contrario, false.

Se aplica a

TryParse(String, IFormatProvider, Decimal)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Intenta analizar una cadena en un 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

Cadena que se va a analizar.

provider
IFormatProvider

Objeto que proporciona información de formato específica de la referencia cultural sobre s.

result
Decimal

Cuando este método devuelve, contiene el resultado de analizar correctamente s o un valor indefinido en caso de error.

Devoluciones

true si s se ha analizado correctamente; de lo contrario, false.

Se aplica a

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Decimal)

Source:
Decimal.cs
Source:
Decimal.cs

Intenta analizar un intervalo de caracteres UTF-8 en un 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>

Intervalo de caracteres UTF-8 que se van a analizar.

style
NumberStyles

Combinación bit a bit de estilos de número que pueden estar presentes en utf8Text.

provider
IFormatProvider

Objeto que proporciona información de formato específica de la referencia cultural sobre utf8Text.

result
Decimal

Al devolver, contiene el resultado de analizar correctamente utf8Text o un valor indefinido en caso de error.

Devoluciones

true si utf8Text se ha analizado correctamente; de lo contrario, false.

Se aplica a

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Convierte la representación de intervalo de un número en su Decimal equivalente mediante el estilo y el formato específico de la referencia cultural especificados. Un valor devuelto indica si la conversión se realizó correctamente o no.

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>

Intervalo que contiene los caracteres que representan el número que se va a convertir.

style
NumberStyles

Combinación bit a bit de valores de enumeración que indica el formato permitido de s. Un valor típico que se debe especificar es Number.

provider
IFormatProvider

Objeto que proporciona información de análisis específica de la referencia cultural sobre s.

result
Decimal

Cuando este método devuelve , contiene el número de Decimal equivalente al valor numérico contenido en s, si la conversión se realizó correctamente o cero si se produjo un error en la conversión. Se produce un error en la conversión si el parámetro s es null o Empty, no es un número compatible con styleo representa un número menor que Decimal.MinValue o mayor que Decimal.MaxValue. Este parámetro se pasa uininitialized; cualquier valor proporcionado originalmente en result se sobrescribe.

Devoluciones

true si s se convirtió correctamente; de lo contrario, false.

Se aplica a

TryParse(String, NumberStyles, IFormatProvider, Decimal)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Convierte la representación de cadena de un número en su Decimal equivalente mediante el estilo y el formato específico de la referencia cultural especificados. Un valor devuelto indica si la conversión se realizó correctamente o no.

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

Representación de cadena del número que se va a convertir.

style
NumberStyles

Combinación bit a bit de valores de enumeración que indica el formato permitido de s. Un valor típico que se debe especificar es Number.

provider
IFormatProvider

Objeto que proporciona información de análisis específica de la referencia cultural sobre s.

result
Decimal

Cuando este método devuelve , contiene el número de Decimal equivalente al valor numérico contenido en s, si la conversión se realizó correctamente o cero si se produjo un error en la conversión. Se produce un error en la conversión si el parámetro s es null o Empty, no es un número compatible con styleo representa un número menor que Decimal.MinValue o mayor que Decimal.MaxValue. Este parámetro se pasa uininitialized; cualquier valor proporcionado originalmente en result se sobrescribe.

Devoluciones

true si s se convirtió correctamente; de lo contrario, false.

Excepciones

style no es un valor NumberStyles.

-o-

style es el valor de AllowHexSpecifier.

Ejemplos

En el ejemplo siguiente se muestra el uso del método TryParse(String, NumberStyles, IFormatProvider, Decimal) para analizar la representación de cadena de un número que tiene un estilo determinado y se da formato a las convenciones de una referencia cultural determinada.

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'.

Comentarios

Esta sobrecarga difiere del método Decimal.Parse(String, NumberStyles, IFormatProvider) devolviendo un valor booleano que indica si la operación de análisis se realizó correctamente en lugar de devolver el valor numérico analizado. Elimina la necesidad de usar el control de excepciones para probar un FormatException en caso de que s no sea válido y no se pueda analizar correctamente.

El parámetro style define el formato permitido del parámetro s para que la operación de análisis se realice correctamente. Debe ser una combinación de marcas de bits de la enumeración NumberStyles. No se admiten los siguientes miembros de NumberStyles:

Según el valor del estilo, el parámetro s puede incluir los siguientes elementos:

[ws] [$] [sign] [digits,]digits[.fractional-digits][e[sign]digits][ws]

Los elementos entre corchetes ([ y ]) son opcionales. En la tabla siguiente se describe cada elemento.

Elemento Descripción
ws Espacio en blanco opcional. El espacio en blanco puede aparecer al principio de s si style incluye la marca NumberStyles.AllowLeadingWhite. Puede aparecer al final de s si style incluye la marca NumberStyles.AllowTrailingWhite.
$ Símbolo de moneda específico de la referencia cultural. Su posición en la cadena se define mediante las propiedades NumberFormatInfo.CurrencyNegativePattern o NumberFormatInfo.CurrencyPositivePattern del objeto NumberFormatInfo devuelto por el método IFormatProvider.GetFormat del parámetro provider. El símbolo de moneda puede aparecer en s si style incluye la marca NumberStyles.AllowCurrencySymbol.
de signo Un signo opcional.
de dígitos de Secuencia de dígitos que van de 0 a 9.
. Símbolo de separador decimal específico de la referencia cultural.
fracciones de dígitos Secuencia de dígitos que van de 0 a 9.

El parámetro style especifica el formato permitido del parámetro s y puede ser una o varias constantes enumeradas NumberStyles combinadas mediante una operación OR bit a bit. Si style es null, s se interpreta con el estilo NumberStyles.Number.

El parámetro provider es una implementación de IFormatProvider, como un objeto NumberFormatInfo o CultureInfo. El parámetro provider proporciona información específica de la referencia cultural que se usa en el análisis. Si provider es null, se usa la referencia cultural actual del subproceso.

Un objeto Decimal tiene 29 dígitos de precisión. Si s representa un número que tiene más de 29 dígitos, pero tiene una parte fraccionaria y está dentro del intervalo de MaxValue y MinValue, el número se redondea, no trunca, a 29 dígitos con redondeo a más cercano.

Si se encuentra un separador en el parámetro s durante una operación de análisis y los separadores decimales y de grupo aplicables son los mismos, la operación de análisis supone que el separador es un separador decimal en lugar de un separador de grupo. Para obtener más información sobre los separadores, vea CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatory NumberGroupSeparator.

Consulte también

Se aplica a