Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Método Double.Parse (String, NumberStyles)

Converte a representação de seqüência de caracteres de um número em um estilo especificado para o seu número de ponto flutuante de precisão dupla equivalente.

Namespace:  System
Assembly:  mscorlib (em mscorlib.dll)

public static double Parse(
	string s,
	NumberStyles style
)

Parâmetros

s
Tipo: System.String
Uma seqüência de caracteres que contém um número a ser convertido.
style
Tipo: System.Globalization.NumberStyles
Uma combinação bit a bit dos valores de enumeração para indicar os elementos de estilo que podem estar presentes em s. Um valor típico para especificar é uma combinação de Float combinado com AllowThousands.

Valor de retorno

Tipo: System.Double
Um número de ponto flutuante de precisão dupla que é equivalente ao valor numérico ou símbolo especificado na s.

ExceçãoCondição
ArgumentNullException

s é null.

FormatException

srepresenta um número em um formato válido.

OverflowException

srepresenta um número que é menor do que MinValue ou maior que MaxValue.

ArgumentException

stylenão é um NumberStyles valor.

-ou-

styleinclui o AllowHexSpecifier valor.

O style parâmetro define os elementos de estilo (como, por exemplo, espaço em branco, milhares separadores e símbolos de moeda) que são permitidos na s parâmetro para a operação de análise para o sucesso. Ele deve ser uma combinação de sinalizadores de bit da NumberStyles enumeração. O seguinte NumberStyles membros que não são suportados:

O s parâmetro pode conter a cultura atual NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol, ou NumberFormatInfo.NaNSymbol. Dependendo do valor de style, ele também pode assumir a forma:

ws]$]sign]integral-digits,]integral-digits.dígitos de fração]] [Esignexponencial dígitos]ws

Elementos em colchetes ([e]) são opcionais. A tabela a seguir descreve cada elemento.

ELEMENT

Descrição

WS

Uma série de caracteres de espaço em branco. Espaço em branco pode aparecer no início da s Se style inclui o NumberStyles.AllowLeadingWhite sinalizador e ele podem aparecer no final do s se style inclui o NumberStyles.AllowTrailingWhite sinalizador.

$

Um símbolo de moeda de cultura específica. Sua posição na seqüência de caracteres é definida pela NumberFormatInfo.CurrencyNegativePattern e NumberFormatInfo.CurrencyPositivePattern Propriedades de cultura atual. Símbolo de moeda da cultura atual pode aparecer em s Se style inclui o NumberStyles.AllowCurrencySymbol sinalizador.

sinal

Símbolo de um sinal negativo (-) ou símbolo de um sinal positivo (+). O sinal pode aparecer no início da s Se style inclui o NumberStyles.AllowLeadingSign sinalizador e ele podem aparecer no final do s se style inclui o NumberStyles.AllowTrailingSign sinalizador. Parênteses podem ser usados em s para indicar um valor negativo se style inclui o NumberStyles.AllowParentheses sinalizador.

integral de dígitos

Uma série de variando de 0 a 9 que especificam a parte integrante do número de dígitos. O dígitos integral elemento pode estar ausente se a seqüência de caracteres contém o dígitos de fração elemento.

,

Um separador de grupo de cultura específica. Símbolo de separador de grupo da cultura atual pode aparecer em s Se style inclui o NumberStyles.AllowThousands sinalizador

.

A culture-specific decimal point symbol. Símbolo de ponto decimal da cultura atual pode aparecer em s Se style inclui o NumberStyles.AllowDecimalPoint sinalizador.

dígitos de fração

Uma série de variando de 0 a 9 que especificam a parte fracionária do número de dígitos. Dígitos de fração podem aparecer em s Se style inclui o NumberStyles.AllowDecimalPoint sinalizador.

E

O "e" ou "E" caractere, o que indica que o valor é representado em notação exponencial de (científica). O s parâmetro pode representar um número em notação exponencial se style inclui o NumberStyles.AllowExponent sinalizador.

exponencial dígitos

Uma série de dígitos que variam de 0 a 9 que especificam um expoente.

Uma seqüência de caracteres com dígitos apenas (que corresponde do NumberStyles.None estilo) sempre analisa com êxito. O restante System.Globalization.NumberStyles os membros controlar os elementos que podem estar presentes, mas não precisam estar presentes na seqüência de caracteres de entrada. A tabela a seguir indica como individuais NumberStyles sinalizadores afetam os elementos que podem estar presentes no s.

Valor NumberStyles

Elementos são permitidos em s com dígitos

None

O dígitos integral somente o elemento.

AllowDecimalPoint

O ponto decimal (.) e dígitos de fração elementos.

AllowExponent

O "e" ou "E" caractere, o que indica a notação exponencial. Esse sinalizador por si só oferece suporte a valores no formulário dígitosedígitos; sinalizadores adicionais são necessários para analisar com êxito de cadeias de caracteres com elementos como sinais positivos ou negativos e símbolos de ponto decimal.

AllowLeadingWhite

O ws o elemento no início da s.

AllowTrailingWhite

O ws o elemento final da s.

AllowLeadingSign

O sign o elemento no início da s.

AllowTrailingSign

O sign o elemento final da s.

AllowParentheses

O sign elemento na forma de colocar o valor numérico de parênteses.

AllowThousands

Milhares elemento do separador (,).

AllowCurrencySymbol

O elemento de unidade monetária ($).

Currency

Todos os elementos. No entanto, s não pode representar um número hexadecimal ou um número em notação exponencial.

Float

O ws elemento no início ou final de s, sign no início da se o símbolo ponto de decimal (.). O s também pode usar o parâmetro notação exponencial.

Number

O ws, sign, milhares separador (,) e elementos do separador decimal (.).

Any

Todos os elementos. No entanto, s não pode representar um número hexadecimal.

O s parâmetro é analisado usando as informações de formatação em um NumberFormatInfo objeto que é inicializado para a cultura atual do sistema. Para maiores informações, veja CurrentInfo.

Normalmente, se você passar o Double.Parse método uma seqüência de caracteres é criado chamando o Double.ToString método, o original Double valor é retornado. No entanto, devido à perda de precisão, os valores podem não ser iguais. Além disso, a tentativa de analisar a representação de seqüência de caracteres de um MinValue ou MaxValue lança um OverflowException, conforme o exemplo a seguir ilustra.


   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.


Se um separador é encontrado na s parâmetro durante uma operação de análise, a moeda aplicável ou número decimal e separadores de grupo são os mesmos, a operação de análise pressupõe que o separador é um separador decimal em vez de um separador de grupo. Para obter mais informações sobre os separadores, consulte CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, e NumberGroupSeparator.

O exemplo a seguir usa a Parse(String, NumberStyles) método para analisar as representações de strings de Double valores usando a cultura en-US.


public static void Main()
{
   // Set current thread culture to en-US.
   Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");

   string value;
   NumberStyles styles;

   // Parse a string in exponential notation with only the AllowExponent flag. 
   value = "-1.063E-02";
   styles = NumberStyles.AllowExponent;
   ShowNumericValue(value, styles);

   // Parse a string in exponential notation
   // with the AllowExponent and Number flags.
   styles = NumberStyles.AllowExponent | NumberStyles.Number;
   ShowNumericValue(value, styles);

   // Parse a currency value with leading and trailing white space, and
   // white space after the U.S. currency symbol.
   value = " $ 6,164.3299  ";
   styles = NumberStyles.Number | NumberStyles.AllowCurrencySymbol;
   ShowNumericValue(value, styles);

   // Parse negative value with thousands separator and decimal.
   value = "(4,320.64)";
   styles = NumberStyles.AllowParentheses | NumberStyles.AllowTrailingSign |
            NumberStyles.Float; 
   ShowNumericValue(value, styles);

   styles = NumberStyles.AllowParentheses | NumberStyles.AllowTrailingSign |
            NumberStyles.Float | NumberStyles.AllowThousands;
   ShowNumericValue(value, styles);
}

private static void ShowNumericValue(string value, NumberStyles styles)
{
   double number;
   try
   {
      number = Double.Parse(value, styles);
      Console.WriteLine("Converted '{0}' using {1} to {2}.", 
                        value, styles.ToString(), number);
   }
   catch (FormatException)
   {
      Console.WriteLine("Unable to parse '{0}' with styles {1}.", 
                        value, styles.ToString());
   }
   Console.WriteLine();                           
}   
// The example displays the following output to the console:
//    Unable to parse '-1.063E-02' with styles AllowExponent.
//    
//    Converted '-1.063E-02' using AllowTrailingSign, AllowThousands, Float to -0.01063.
//    
//    Converted ' $ 6,164.3299  ' using Number, AllowCurrencySymbol to 6164.3299.
//    
//    Unable to parse '(4,320.64)' with styles AllowTrailingSign, AllowParentheses, Float.
//    
//    Converted '(4,320.64)' using AllowTrailingSign, AllowParentheses, AllowThousands, Float to -4320.64.   


.NET Framework

Com suporte em: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core não compatível), Windows Server 2008 R2 (Server Core não compatível com SP1 ou posterior), Windows Server 2003 SP2

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos de sistema do .NET Framework.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft