Decimal.TryParse Decimal.TryParse Decimal.TryParse Decimal.TryParse Method

Definición

Convierte la representación en forma de cadena de un número en su Decimal equivalente.Converts the string representation of a number to its Decimal equivalent. Un valor devuelto indica si la conversión se realizó correctamente o si se produjeron errores.A return value indicates whether the conversion succeeded or failed.

Sobrecargas

TryParse(String, NumberStyles, IFormatProvider, Decimal) TryParse(String, NumberStyles, IFormatProvider, Decimal) TryParse(String, NumberStyles, IFormatProvider, Decimal) TryParse(String, NumberStyles, IFormatProvider, Decimal)

Convierte la representación de cadena de un número en su Decimal equivalente utilizando el estilo y el formato específico de la referencia cultural que se hayan especificado.Converts the string representation of a number to its Decimal equivalent using the specified style and culture-specific format. Un valor devuelto indica si la conversión se realizó correctamente o si se produjeron errores.A return value indicates whether the conversion succeeded or failed.

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

Convierte la representación en forma de cadena de un número en su Decimal equivalente.Converts the string representation of a number to its Decimal equivalent. Un valor devuelto indica si la conversión se realizó correctamente o si se produjeron errores.A return value indicates whether the conversion succeeded or failed.

TryParse(String, NumberStyles, IFormatProvider, Decimal) TryParse(String, NumberStyles, IFormatProvider, Decimal) TryParse(String, NumberStyles, IFormatProvider, Decimal) TryParse(String, NumberStyles, IFormatProvider, Decimal)

Convierte la representación de cadena de un número en su Decimal equivalente utilizando el estilo y el formato específico de la referencia cultural que se hayan especificado.Converts the string representation of a number to its Decimal equivalent using the specified style and culture-specific format. Un valor devuelto indica si la conversión se realizó correctamente o si se produjeron errores.A return value indicates whether the conversion succeeded or failed.

public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::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 String String String

Representación de cadena del número que va a convertirse.The string representation of the number to convert.

style
NumberStyles NumberStyles NumberStyles NumberStyles

Combinación bit a bit de valores de enumeración que indica el formato permitido de s.A bitwise combination of enumeration values that indicates the permitted format of s. Un valor que se especifica de forma habitual es Number.A typical value to specify is Number.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Un objeto que proporciona información de análisis específica de la referencia cultural sobre s.An object that supplies culture-specific parsing information about s.

result
Decimal Decimal Decimal Decimal

El resultado de este método contiene el número Decimal equivalente al valor numérico contenido en s si la conversión se realizó correctamente, o bien, es cero si no se realizó correctamente.When this method returns, contains the Decimal number that is equivalent to the numeric value contained in s, if the conversion succeeded, or zero if the conversion failed. La conversión no se realiza correctamente si el parámetro s es null o Empty, no es un número en un formato compatible con style o representa un número menor que MinValue o mayor que MaxValue.The conversion fails if the s parameter is null or Empty, is not a number in a format compliant with style, or represents a number less than MinValue or greater than MaxValue. Este parámetro se pasa sin inicializar; cualquier valor proporcionado originalmente en result se sobrescribe.This parameter is passed uininitialized; any value originally supplied in result is overwritten.

Devoluciones

true si s se convirtió correctamente; en caso contrario, false.true if s was converted successfully; otherwise, false.

Excepciones

style no es un valor NumberStyles.style is not a NumberStyles value.

O bien-or- style es el valor AllowHexSpecifier.style is the AllowHexSpecifier value.

Ejemplos

En el ejemplo siguiente se muestra el uso TryParse(String, NumberStyles, IFormatProvider, Decimal) del método para analizar la representación de cadena de un número que tiene un estilo determinado y al que se le da formato mediante las convenciones de una referencia cultural determinada.The following example demonstrates the use of the TryParse(String, NumberStyles, IFormatProvider, Decimal) method to parse the string representation of a number that has a particular style and is formatted using the conventions of a particular culture.

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'.
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 Decimal.Parse(String, NumberStyles, IFormatProvider) del método 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.This overload differs from the Decimal.Parse(String, NumberStyles, IFormatProvider) method by returning a Boolean value that indicates whether the parse operation succeeded instead of returning the parsed numeric value. Elimina la necesidad de usar el control de excepciones para probar un FormatException en el evento que s no es válido y no se puede analizar correctamente.It eliminates the need to use exception handling to test for a FormatException in the event that s is invalid and cannot be successfully parsed.

El style parámetro define el formato permitido s del parámetro para que la operación de análisis se realice correctamente.The style parameter defines the allowable format of the s parameter for the parse operation to succeed. Debe ser una combinación de marcas de bits de la NumberStyles enumeración.It must be a combination of bit flags from the NumberStyles enumeration. No se NumberStyles admiten los siguientes miembros:The following NumberStyles members are not supported:

Dependiendo del valor de Style, el s parámetro puede incluir los siguientes elementos:Depending on the value of style, the s parameter may include the following elements:

WS [$] sesión [digits,] digits [. fraccionario-digits] [e [Sign] digits] [ws][ws][$][sign][digits,]digits[.fractional-digits][e[sign]digits][ws]

Los elementos de los corchetes ([ y ]) son opcionales.Elements in square brackets ([ and ]) are optional. En esta tabla se describe cada elemento.The following table describes each element.

ElementoElement DescripciónDescription
wsws Espacio en blanco opcional.Optional white space. Puede aparecer un espacio en blanco al principio s de style si incluye NumberStyles.AllowLeadingWhite la marca.White space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag. Puede aparecer al final de s si style incluye la NumberStyles.AllowTrailingWhite marca.It can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
$ Un símbolo de divisa específico de la referencia cultural.A culture-specific currency symbol. Su posición en la cadena se define mediante las NumberFormatInfo.CurrencyNegativePattern propiedades NumberFormatInfo.CurrencyPositivePattern o del NumberFormatInfo objeto devuelto por el IFormatProvider.GetFormat método del provider parámetro.Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern or NumberFormatInfo.CurrencyPositivePattern properties of the NumberFormatInfo object returned by the IFormatProvider.GetFormat method of the provider parameter. El símbolo de moneda puede aparecer s en style si incluye NumberStyles.AllowCurrencySymbol la marca.The currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Un signo opcional.An optional sign.
digitsdigits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9.
.. Un símbolo de separador decimal específico de la referencia cultural.A culture-specific decimal point symbol.
fractional-digitsfractional-digits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9.

El style parámetro especifica el formato permitido s del parámetro y puede ser una o varias NumberStyles constantes enumeradas combinadas mediante una operación OR bit a bit.The style parameter specifies the permitted format of the s parameter, and can be one or more NumberStyles enumerated constants combined using a bitwise OR operation. Si style es null, s se interpreta utilizando el NumberStyles.Number estilo.If style is null, s is interpreted using the NumberStyles.Number style.

El provider parámetro es una IFormatProvider implementación como un NumberFormatInfo objeto o CultureInfo .The provider parameter is an IFormatProvider implementation such as a NumberFormatInfo or CultureInfo object. El provider parámetro proporciona información específica de la referencia cultural que se usa en el análisis.The provider parameter supplies culture-specific information used in parsing. Si provider es null, se usa la referencia cultural actual del subproceso.If provider is null, the thread current culture is used.

Un Decimal objeto tiene 29 dígitos de precisión.A Decimal object has 29 digits of precision. 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 se trunca, a 29 dígitos utilizando el redondeo al más próximo.If s represents a number that has more than 29 digits, but has a fractional part and is within the range of MaxValue and MinValue, the number is rounded, not truncated, to 29 digits using rounding to nearest.

Si se encuentra un separador en s el parámetro durante una operación de análisis, y los separadores de moneda o de número decimal y de grupo correspondientes son iguales, la operación de análisis supone que el separador es un separador decimal en lugar de un grupo. separador.If a separator is encountered in the s parameter during a parse operation, and the applicable currency or number decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. Para obtener más información acerca de los separadores CurrencyGroupSeparator, vea NumberGroupSeparator CurrencyDecimalSeparator, NumberDecimalSeparator, y.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Consulte también:

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

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, 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

Devoluciones

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

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

Devoluciones

TryParse(String, Decimal) TryParse(String, Decimal) TryParse(String, Decimal) TryParse(String, Decimal)

Convierte la representación en forma de cadena de un número en su Decimal equivalente.Converts the string representation of a number to its Decimal equivalent. Un valor devuelto indica si la conversión se realizó correctamente o si se produjeron errores.A return value indicates whether the conversion succeeded or failed.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::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 String String String

Representación de cadena del número que va a convertirse.The string representation of the number to convert.

result
Decimal Decimal Decimal Decimal

El resultado de este método contiene el número Decimal equivalente al valor numérico contenido en s si la conversión se realizó correctamente, o bien, es cero si no se realizó correctamente.When this method returns, contains the Decimal number that is equivalent to the numeric value contained in s, if the conversion succeeded, or zero if the conversion failed. La conversión no finaliza correctamente si el parámetro s es null o Empty, no es un número con formato válido o representa un número menor que MinValue o mayor que MaxValue.The conversion fails if the s parameter is null or Empty, is not a number in a valid format, or represents a number less than MinValue or greater than MaxValue. Este parámetro se pasa sin inicializar; cualquier valor proporcionado originalmente en result se sobrescribe.This parameter is passed uininitialized; any value originally supplied in result is overwritten.

Devoluciones

true si s se convirtió correctamente; en caso contrario, false.true if s was converted successfully; otherwise, false.

Ejemplos

En el ejemplo siguiente se Decimal.TryParse(String, Decimal) usa el método para convertir las representaciones de cadena de Decimal valores numéricos en valores.The following example uses the Decimal.TryParse(String, Decimal) method to convert the string representations of numeric values to Decimal values. Se supone que en-US es la referencia cultural actual.It assumes that en-US is the current culture.

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      
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 Decimal.Parse(String) del método 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.This overload differs from the Decimal.Parse(String) method by returning a Boolean value that indicates whether the parse operation succeeded instead of returning the parsed numeric value. Elimina la necesidad de usar el control de excepciones para probar un FormatException en el evento que s no es válido y no se puede analizar correctamente.It eliminates the need to use exception handling to test for a FormatException in the event that s is invalid and cannot be successfully parsed.

El s parámetro contiene un número de la forma:Parameter s contains a number of the form:

WS sesión [digits,] digits [. fraccionario-digits] [ws][ws][sign][digits,]digits[.fractional-digits][ws]

Los elementos de los corchetes ([ y ]) son opcionales.Elements in square brackets ([ and ]) are optional. En esta tabla se describe cada elemento.The following table describes each element.

ElementoElement DescripciónDescription
wsws Espacio en blanco opcional.Optional white space.
signsign Un signo opcional.An optional sign.
digitsdigits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9.
,, Un símbolo de separador de miles específico de la referencia cultural.A culture-specific thousands separator symbol.
.. Un símbolo de separador decimal específico de la referencia cultural.A culture-specific decimal point symbol.
fractional-digitsfractional-digits Secuencia de dígitos que comprende del 0 al 9.A sequence of digits ranging from 0 to 9.

El s parámetro se interpreta utilizando NumberStyles.Number el estilo.Parameter s is interpreted using the NumberStyles.Number style. Esto significa que los espacios en blanco y los separadores de miles están permitidos, pero no los símbolos de moneda.This means that white space and thousands separators are allowed but currency symbols are not. Para definir explícitamente los elementos (como los símbolos de moneda, los separadores de miles y los espacios en blanco s) que pueden Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) estar presentes en, utilice la sobrecarga del método.To explicitly define the elements (such as currency symbols, thousands separators, and white space) that can be present in s, use the Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) method overload.

El s parámetro se analiza utilizando la información de formato de NumberFormatInfo un objeto inicializado para la referencia cultural del sistema actual.Parameter s is parsed using the formatting information in a NumberFormatInfo object initialized for the current system culture. Para obtener más información, vea CurrentInfo.For more information, see CurrentInfo. Para analizar una cadena utilizando la información de formato de alguna otra referencia cultural especificada, Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) use la sobrecarga del método.To parse a string using the formatting information of some other specified culture, use the Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) method overload.

Si es necesario, el valor s de se redondea utilizando el redondeo al más próximo.If necessary, the value of s is rounded using rounding to nearest.

Un Decimal objeto tiene 29 dígitos de precisión.A Decimal object has 29 digits of precision. 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 se trunca, a 29 dígitos utilizando el redondeo al más próximo.If s represents a number that has more than 29 digits, but has a fractional part and is within the range of MaxValue and MinValue, the number is rounded, not truncated, to 29 digits using rounding to nearest.

Si durante una operación de análisis se encuentra un separador s en el parámetro, y los separadores de moneda o de número decimal y de grupo correspondientes son iguales, la operación de análisis supone que el separador es un separador decimal en lugar de un grupo. separador.If during a parse operation a separator is encountered in the s parameter, and the applicable currency or number decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. Para obtener más información acerca de los separadores CurrencyGroupSeparator, vea NumberGroupSeparator CurrencyDecimalSeparator, NumberDecimalSeparator, y.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Consulte también:

Se aplica a