Decimal.TryParse Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Convierte la representación en forma de cadena de un número en su Decimal equivalente. Un valor devuelto indica si la conversión se realizó correctamente o si se produjeron errores.
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 con signo. |
TryParse(ReadOnlySpan<Char>, Decimal) |
Convierte la representación de intervalo de un número en su valor Decimal equivalente mediante el estilo y el formato específico de la referencia cultural que se hayan especificado. Un valor devuelto indica si la conversión se realizó correctamente o si se produjeron errores. |
TryParse(String, Decimal) |
Convierte la representación en forma de cadena de un número en su Decimal equivalente. Un valor devuelto indica si la conversión se realizó correctamente o si se produjeron errores. |
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 valor Decimal equivalente mediante el estilo y el formato específico de la referencia cultural que se hayan especificado. Un valor devuelto indica si la conversión se realizó correctamente o si se produjeron errores. |
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. Un valor devuelto indica si la conversión se realizó correctamente o si se produjeron errores. |
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 con signo.
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 con signo 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; se sobrescribirán todos los valores proporcionados originalmente en el resultado.
Devoluciones
true
si utf8Text
se convirtió correctamente; en caso 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 valor Decimal equivalente mediante el estilo y el formato específico de la referencia cultural que se hayan especificado. Un valor devuelto indica si la conversión se realizó correctamente o si se produjeron errores.
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>
Un intervalo que contiene los caracteres que representan el número que se va a convertir.
- result
- 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. Se produce un error en la conversión si el s
parámetro es null
o Empty, no es un número en un formato compatible con style
o representa un número menor que Decimal.MinValue o mayor que Decimal.MaxValue. Este parámetro se pasa sin inicializar; cualquier valor proporcionado originalmente en result
se sobrescribe.
Devoluciones
true
si s
se convirtió correctamente; en caso contrario, false
.
Se aplica a
TryParse(String, Decimal)
- Source:
- Decimal.cs
- Source:
- Decimal.cs
- Source:
- Decimal.cs
Convierte la representación en forma de cadena de un número en su Decimal equivalente. Un valor devuelto indica si la conversión se realizó correctamente o si se produjeron errores.
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 va a convertirse.
- result
- 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. Se produce un error en la conversión si el s
parámetro 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 sin inicializar; cualquier valor proporcionado originalmente en result
se sobrescribe.
Devoluciones
true
si s
se convirtió correctamente; en caso contrario, false
.
Ejemplos
En el ejemplo siguiente se usa el Decimal.TryParse(String, Decimal) método 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 Decimal.Parse(String) 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. Elimina la necesidad de usar el control de excepciones para probar en caso FormatException 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 de los corchetes ([ y ]) son opcionales. En esta tabla se describe cada elemento.
Elemento | Descripción |
---|---|
ws | Espacio en blanco opcional. |
sign | Un signo opcional. |
dígitos | Secuencia de dígitos comprendidos entre 0 y 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 comprendidos entre 0 y 9. |
El parámetro s
se interpreta con el NumberStyles.Number estilo . Esto significa que se permiten espacios en blanco y separadores de miles, pero no se admiten 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 Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) método .
El parámetro s
se analiza mediante la información de formato de un NumberFormatInfo objeto inicializado para la referencia cultural del sistema actual. Para obtener más información, vea CurrentInfo. Para analizar una cadena mediante la información de formato de alguna otra referencia cultural especificada, use la sobrecarga del Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) método .
Si es necesario, el valor de s
se redondea con redondeo al más cercano.
Un Decimal objeto 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 al más cercano.
Si durante una operación de análisis se encuentra un separador en el s
parámetro y los separadores decimales y de número y número 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
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
Un objeto que proporciona información de formato específica de la referencia cultural sobre utf8Text
.
- result
- Decimal
Al devolver, contiene el resultado de analizar utf8Text
correctamente o un valor no definido en caso de error.
Devoluciones
true
es si utf8Text
se ha analizado correctamente; en caso contrario, false
es .
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 van a analizar.
- provider
- IFormatProvider
Un 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 s
correctamente o un valor indefinido en caso de error.
Devoluciones
true
es si s
se ha analizado correctamente; en caso contrario, false
es .
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
Un objeto que proporciona información de formato específica de la referencia cultural sobre s
.
- result
- Decimal
Cuando este método vuelve, contiene el resultado de analizar s
correctamente o un valor no definido en caso de error.
Devoluciones
true
es si s
se ha analizado correctamente; en caso contrario, false
es .
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
Un objeto que proporciona información de formato específica de la referencia cultural sobre utf8Text
.
- result
- Decimal
Al devolver, contiene el resultado de analizar utf8Text
correctamente o un valor no definido en caso de error.
Devoluciones
true
es si utf8Text
se ha analizado correctamente; en caso contrario, false
es .
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 valor Decimal equivalente mediante el estilo y el formato específico de la referencia cultural que se hayan especificado. Un valor devuelto indica si la conversión se realizó correctamente o si se produjeron errores.
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>
Un 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 que se especifica de forma habitual es Number.
- provider
- IFormatProvider
Un objeto que proporciona información de análisis específica de la referencia cultural sobre s
.
- result
- 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. Se produce un error en la conversión si el s
parámetro es null
o Empty, no es un número en un formato compatible con style
o representa un número menor que Decimal.MinValue o mayor que Decimal.MaxValue. Este parámetro se pasa sin inicializar; cualquier valor proporcionado originalmente en result
se sobrescribe.
Devoluciones
true
si s
se convirtió correctamente; en caso 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 utilizando el estilo y el formato específico de la referencia cultural que se hayan especificado. Un valor devuelto indica si la conversión se realizó correctamente o si se produjeron errores.
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 va a convertirse.
- style
- NumberStyles
Combinación bit a bit de valores de enumeración que indica el formato permitido de s
. Un valor que se especifica de forma habitual es Number.
- provider
- IFormatProvider
Un objeto que proporciona información de análisis específica de la referencia cultural sobre s
.
- result
- 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. Se produce un error en la conversión si el s
parámetro es null
o Empty, no es un número en un formato compatible con style
o representa un número menor que Decimal.MinValue o mayor que Decimal.MaxValue. Este parámetro se pasa sin inicializar; cualquier valor proporcionado originalmente en result
se sobrescribe.
Devoluciones
true
si s
se convirtió correctamente; en caso contrario, false
.
Excepciones
Ejemplos
En el ejemplo siguiente se muestra el uso del TryParse(String, NumberStyles, IFormatProvider, Decimal) método para analizar la representación de cadena de un número que tiene un estilo determinado y se da formato mediante 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 Decimal.Parse(String, NumberStyles, IFormatProvider) 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. Elimina la necesidad de usar el control de excepciones para probar en caso FormatException de que s
no sea válido y no se pueda analizar correctamente.
El style
parámetro define el formato permitido del s
parámetro para que la operación de análisis se realice correctamente. Debe ser una combinación de marcas de bits de la NumberStyles enumeración. No se admiten los siguientes NumberStyles miembros:
Dependiendo del valor de estilo, el s
parámetro puede incluir los siguientes elementos:
[ws] [$] [sign] [digits,]digits[.fractional-digits][e[sign]digits][ws]
Los elementos de los corchetes ([ y ]) son opcionales. En esta tabla 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 NumberStyles.AllowLeadingWhite marca . Puede aparecer al final de s si style incluye la NumberStyles.AllowTrailingWhite marca . |
$ | Símbolo de moneda específico de la referencia cultural. Su posición en la cadena se define mediante las NumberFormatInfo.CurrencyNegativePattern propiedades o NumberFormatInfo.CurrencyPositivePattern del NumberFormatInfo objeto devuelto por el IFormatProvider.GetFormat método del provider parámetro . El símbolo de moneda puede aparecer en s si style incluye la NumberStyles.AllowCurrencySymbol marca . |
sign | Un signo opcional. |
dígitos | Secuencia de dígitos comprendidos entre 0 y 9. |
. | Símbolo de separador decimal específico de la referencia cultural. |
fracciones de dígitos | Secuencia de dígitos comprendidos entre 0 y 9. |
El style
parámetro especifica el formato permitido del s
parámetro y puede ser una o varias NumberStyles constantes enumeradas combinadas mediante una operación OR bit a bit. Si style
es null, s
se interpreta mediante el NumberStyles.Number estilo .
El provider
parámetro es una IFormatProvider implementación como un NumberFormatInfo objeto o CultureInfo . El provider
parámetro proporciona información específica de la referencia cultural utilizada en el análisis. Si provider
es null
, se usa la referencia cultural actual del subproceso.
Un Decimal objeto 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 al más cercano.
Si se encuentra un separador en el s
parámetro durante una operación de análisis y los separadores decimales y de número y número 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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de