Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

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
Tipo: System.String
Cadena que contiene un número que se va a convertir.
result
Tipo: 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.

Valor devuelto

Tipo: System.Boolean
Es true si s se convirtió correctamente; de lo contrario, es false.

Esta sobrecarga se diferencia del método Double.Parse(String) en que devuelve 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 una FormatException en caso de que el parámetro s no sea válido y no pueda analizarse correctamente.

El parámetro s puede contener las propiedades NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol o NumberFormatInfo.NaNSymbol de la referencia cultural actual (la comparación de cadenas distingue entre mayúsculas y minúsculas) o una cadena con el formato:

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

Los elementos entre corchetes son opcionales. En la tabla siguiente se describe cada elemento.

Elemento

Descripción

eb

Serie de caracteres de espacio en blanco.

sign

Símbolo de signo negativo o positivo.

dígitos enteros

Serie de caracteres numéricos que van del 0 al 9 y que especifican la parte entera del número. Los dígitos enteros pueden estar ausentes si hay dígitos fraccionarios.

,

Símbolo separador de grupos específico de la referencia cultural.

.

Símbolo separador de decimales específico de la referencia cultural.

dígitos fraccionarios

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

E

Carácter "e" mayúscula o minúscula que indica una notación exponencial (científica).

dígitos exponenciales

Serie de caracteres numéricos que van del 0 al 9 y especifican un exponente.

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

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

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

Normalmente, si se pasa al método Double.TryParse una cadena creada mediante una llamada al método Double.ToString, se devuelve el valor Double original. Sin embargo, debido a una pérdida de precisión, es posible que los valores no sean iguales. Además, si se intenta analizar la representación de cadena de MinValue o MaxValue, se producirá una excepción OverflowException, tal y como se muestra en el siguiente ejemplo.


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, durante una operación de análisis, se encuentra un separador en el parámetro s y los separadores decimales y de grupos son iguales, la operación de análisis supone que se trata de un separador decimal, no de un separador de grupos. Para obtener más información sobre separadores, vea CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator y NumberGroupSeparator.

En el ejemplo siguiente se usa el método TryParse(String, Double) para convertir las representaciones de cadena de valores numéricos en valores de tipo Double. 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'.


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft