TryParse Método (String, Double)
Collapse the table of content
Expand the table of content
Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Double.TryParse (Método) (String, Double)

 

Convierte la representación en forma de cadena de un número en el número de punto flotante de precisión doble equivalente. Un valor devuelto indica si la conversión se realizó correctamente o si se produjeron errores.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

public static bool TryParse(
	string s,
	out double result
)

Parámetros

s
Type: System.String

Cadena que contiene un número que se va a convertir.

result
Type: System.Double

Cuando el resultado que devuelve este método contiene el número de punto flotante de precisión doble equivalente al parámetro s, si la conversión tuvo éxito o cero si falló. La conversión no finaliza correctamente si el parámetro s es null o String.Empty, no es un número con formato válido o representa un número menor que MinValue o mayor que MaxValue. Este parámetro se pasa sin inicializar; cualquier valor proporcionado originalmente en result se sobrescribirá.

Valor devuelto

Type: System.Boolean

true si s se convirtió correctamente; en caso contrario, false.

Esta sobrecarga es distinta de la Double.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 utilizar el control de excepciones para probar una FormatException en caso de que s no es válido y no pueda analizarse correctamente.

El s parámetro puede contener la referencia cultural actual NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, NumberFormatInfo.NaNSymbol (la comparación de cadenas distingue mayúsculas de minúsculas), o una cadena del formulario:

[eb] [signo] [dígitos enteros,] dígitos enteros [. [ [[dígitos fraccionarios]] [e [signo] dígitos exponenciales] [eb]

Elementos entre corchetes son opcionales. En la tabla siguiente describe cada elemento.

Elemento

Descripción

ws

Una serie de caracteres de espacio en blanco.

inicio de sesión

Un signo negativo o el símbolo de signo positivo.

dígitos enteros

Una serie de caracteres numéricos comprendidos entre 0 y 9 y que especifican la parte entera del número. Dígitos enteros pueden estar ausentes si hay dígitos fraccionarios.

,

Un símbolo de separador de grupo específicas de la referencia cultural.

.

Separador decimal de la referencia cultural específica.

dígitos fraccionarios

Una serie de caracteres numéricos comprendidos entre 0 y 9 y que especifican la parte fraccionaria del número.

E

Un letra mayúscula o minúscula carácter 'e', que indica una notación exponencial (científica).

dígitos exponenciales

Una serie de caracteres numéricos comprendidos entre 0 y 9 y que especifican a un exponente.

Para obtener más información acerca de formatos numéricos, vea Aplicar formato a tipos en .NET Framework.

El s parámetro se interpreta mediante una combinación de los NumberStyles.Float y NumberStyles.AllowThousands marcas. Esto significa que el espacio en blanco y miles se permiten separadores pero no símbolos de moneda. Para definir explícitamente los elementos (como símbolos de moneda, miles separadores y espacios en blanco) que pueden estar presentes en s, utilice el Double.TryParse(String, NumberStyles, IFormatProvider, Double) sobrecarga del método.

El s parámetro se analiza utilizando la información de formato en una NumberFormatInfo objeto inicializado para la referencia cultural del sistema actual. Para obtener más información, consulta NumberFormatInfo.CurrentInfo. Para analizar una cadena usando la información de formato de alguna otra especifica la referencia cultural, use el Double.TryParse(String, NumberStyles, IFormatProvider, Double) sobrecarga del método.

Normalmente, si se pasa el Double.TryParse método una cadena que se crea mediante una llamada a la Double.ToString método, el original Double devuelve el valor. Sin embargo, debido a una pérdida de precisión, los valores pueden no ser iguales. Además, al intentar analizar la representación de cadena de MinValue o MaxValue produce una OverflowException, como se muestra en el ejemplo siguiente.

using System;

public class Example
{
   public static void Main()
   {
      string value;
      double number;

      value = Double.MinValue.ToString();
      if (Double.TryParse(value, out number))
         Console.WriteLine(number);
      else
         Console.WriteLine("{0} is outside the range of a Double.", 
                           value);

      value = Double.MaxValue.ToString();
      if (Double.TryParse(value, out number))
         Console.WriteLine(number);
      else
         Console.WriteLine("{0} is outside the range of a Double.",
                           value);
   }
}
// The example displays the following output:
//    -1.79769313486232E+308 is outside the range of the Double type.
//    1.79769313486232E+308 is outside the range of the Double type.            

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

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

using System;

public class Example
{
   public static void Main()
   {
      string[] values = { "1,643.57", "$1,643.57", "-1.643e6", 
                          "-168934617882109132", "123AE6", 
                          null, String.Empty, "ABCDEF" };
      double number;

      foreach (var value in values) {
         if (Double.TryParse(value, out number)) 
            Console.WriteLine("'{0}' --> {1}", value, number);
         else
            Console.WriteLine("Unable to parse '{0}'.", value);      
      }   
   }
}
// The example displays the following output:
//       '1,643.57' --> 1643.57
//       Unable to parse '$1,643.57'.
//       '-1.643e6' --> -1643000
//       '-168934617882109132' --> -1.68934617882109E+17
//       Unable to parse '123AE6'.
//       Unable to parse ''.
//       Unable to parse ''.
//       Unable to parse 'ABCDEF'.

Universal Windows Platform
Disponible desde 8
.NET Framework
Disponible desde 2.0
Portable Class Library
Compatible con: portable .NET platforms
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar:
© 2016 Microsoft