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

Método Double.Parse (String)

 

Publicado: octubre de 2016

Convierte la representación en forma de cadena de un número en el número de punto flotante de precisión doble equivalente.

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

public static double Parse(
	string s
)

Parámetros

s
Type: System.String

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

Valor devuelto

Type: System.Double

Número de punto flotante de precisión doble equivalente al valor numérico o símbolo especificado en s.

Exception Condition
ArgumentNullException

El valor de s es null.

FormatException

s no representa un número con un formato válido.

OverflowException

s representa un número menor que MinValue o mayor que MaxValue.

El s parámetro puede contener la referencia cultural actual NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, NumberFormatInfo.NaNSymbol, o una cadena del formulario:

[ws][sign][integral-digits[,]]integral-digits[.[dígitos fraccionarios]] [E [Inicio de sesión]dígitos exponenciales] [ws]

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

Elemento

Descripción

eb

Una serie de caracteres de espacio en blanco.

signo

Símbolo de signo negativo (-) o un signo positivo (+) de símbolos. Se puede utilizar solo un signo inicial.

dígitos enteros

Una serie de dígitos que comprende del 0 al 9 que especifican la parte entera del número. Se ejecuta de dígitos enteros pueden particionarse mediante un símbolo de separador de grupos. Por ejemplo, en algunas referencias culturales una coma (,) separa los millares. El dígitos enteros puede ser el elemento está ausente if la cadena contiene la dígitos fraccionarios elemento.

,

Miles de la referencia cultural específica símbolo de separador.

.

Separador decimal de la referencia cultural específica.

dígitos fraccionarios

Una serie de dígitos que comprende del 0 al 9 que especifican la parte fraccionaria del número.

E

La "e" o el carácter "E", que indica que el valor se representa en notación exponencial (científica).

dígitos exponenciales

Una serie de dígitos que comprende del 0 al 9 que especifican a un exponente.

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, por ejemplo, mientras que los símbolos de moneda no. Para obtener un mayor control sobre qué estilo elementos están permitidos en s para que la operación de análisis se realice correctamente, llame a la Double.Parse(String, NumberStyles) o Double.Parse(String, NumberStyles, IFormatProvider) (método).

El s parámetro se interpreta usando la información de formato en un NumberFormatInfo objeto inicializado para la referencia cultural del subproceso actual. Para obtener más información, consulta CurrentInfo. Para analizar una cadena con la información de formato de alguna otra referencia cultural, llame a la Double.Parse(String, IFormatProvider) o Double.Parse(String, NumberStyles, IFormatProvider) (método).

Normalmente, si se pasa el Double.Parse 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.

   string value;

   value = Double.MinValue.ToString();
   try {
      Console.WriteLine(Double.Parse(value));
   }   
   catch (OverflowException) {
      Console.WriteLine("{0} is outside the range of the Double type.",
                        value);
   }

   value = Double.MaxValue.ToString();
   try {
      Console.WriteLine(Double.Parse(value));
   }
   catch (OverflowException) {
      Console.WriteLine("{0} is outside the range of the Double type.",
                        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 la divisa aplicable o número decimal y separadores de 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 muestra el uso del método Parse(String).

public class Temperature {
	// Parses the temperature from a string in form
	// [ws][sign]digits['F|'C][ws]
	public static Temperature Parse(string s) {
		Temperature temp = new Temperature();

		if( s.TrimEnd(null).EndsWith("'F") ) {
			temp.Value = Double.Parse( s.Remove(s.LastIndexOf('\''), 2) );
		}
		else if( s.TrimEnd(null).EndsWith("'C") ) {
			temp.Celsius = Double.Parse( s.Remove(s.LastIndexOf('\''), 2) );
		}
		else {
			temp.Value = Double.Parse(s);
		}

		return temp;
	}

	// The value holder
	protected double m_value;

	public double Value {
		get {
			return m_value;
		}
		set {
			m_value = value;
		}
	}

	public double Celsius {
		get {
			return (m_value-32.0)/1.8;
		}
		set {
			m_value = 1.8*value+32.0;
		}
	}
}

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: