Single.Parse Methode

Definition

Konvertiert die Zeichenfolgendarstellung einer Zahl in die entsprechende Gleitkommazahl mit einfacher Genauigkeit.

Überlädt

Parse(String, NumberStyles, IFormatProvider)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturabhängigen Format in die entsprechende Gleitkommazahl mit einfacher Genauigkeit.

Parse(String, IFormatProvider)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem bestimmten kulturabhängigen Format in die entsprechende Gleitkommazahl mit einfacher Genauigkeit.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Konvertiert eine Zeichenspanne mit der Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende Gleitkommazahl mit einfacher Genauigkeit

Parse(String)

Konvertiert die Zeichenfolgendarstellung einer Zahl in die entsprechende Gleitkommazahl mit einfacher Genauigkeit.

Parse(String, NumberStyles)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil in die entsprechende Gleitkommazahl mit einfacher Genauigkeit.

Hinweise

In .NET Core 3.0 und höher werden Werte, die zu groß für die Darstellung sind, auf oder gerundet, wie es in der PositiveInfinity NegativeInfinity IEEE 754-Spezifikation erforderlich ist. In früheren Versionen, einschließlich .NET Framework, führte die Analyse eines Werts, der zu groß für die Darstellung war, zu einem Fehler.

Parse(String, NumberStyles, IFormatProvider)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturabhängigen Format in die entsprechende Gleitkommazahl mit einfacher Genauigkeit.

public:
 static float Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public static float Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
public static float Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> single
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As Single

Parameter

s
String

Eine Zeichenfolge, die eine zu konvertierende Zahl enthält.

style
NumberStyles

Eine bitweise Kombination von Enumerationswerten, die die Stilelemente angeben, die in s vorhanden sein können. Ein häufig angegebener Wert ist Float in Kombination mit AllowThousands.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s bereitstellt.

Gibt zurück

Single

Eine Gleitkommazahl mit einfacher Genauigkeit, die dem numerischen Wert oder Symbol in s entspricht.

Ausnahmen

s ist null.

s stellt keinen numerischen Wert dar.

style ist kein NumberStyles-Wert.

- oder - style ist der AllowHexSpecifier-Wert.

Nur .NET Framework und .NET Core 2.2 und frühere Versionen: s stellt eine Zahl dar, die kleiner als MinValue oder größer als MaxValue ist.

Beispiele

Im folgenden Codebeispiel wird die Parse(String, NumberStyles, IFormatProvider) -Methode verwendet, um die Zeichenfolgendarstellungen von -Werten zu Single analysieren. Jede Zeichenfolge in einem Array wird mithilfe der Formatierungskonventionen von en-US, nl-NL und einer benutzerdefinierten Kultur analysiert. Die benutzerdefinierte Kultur definiert das Gruppentrennzeichen als Unterstrich ("_") und die Gruppengröße als zwei.

using System;
using System.Globalization;

public class Example
{
    public static void Main()
    {
      // Define an array of string values.
      string[] values = { " 987.654E-2", " 987,654E-2",  "(98765,43210)",
                          "9,876,543.210", "9.876.543,210",  "98_76_54_32,19" };
      // Create a custom culture based on the invariant culture.
      CultureInfo ci = new CultureInfo("");
      ci.NumberFormat.NumberGroupSizes = new int[] { 2 };
      ci.NumberFormat.NumberGroupSeparator = "_";

      // Define an array of format providers.
      CultureInfo[] providers = { new CultureInfo("en-US"),
                                  new CultureInfo("nl-NL"), ci };

      // Define an array of styles.
      NumberStyles[] styles = { NumberStyles.Currency, NumberStyles.Float };

      // Iterate the array of format providers.
      foreach (CultureInfo provider in providers)
      {
         Console.WriteLine("Parsing using the {0} culture:",
                           provider.Name == String.Empty ? "Invariant" : provider.Name);
         // Parse each element in the array of string values.
         foreach (string value in values)
         {
            foreach (NumberStyles style in styles)
            {
               try {
                  float number = Single.Parse(value, style, provider);
                  Console.WriteLine("   {0} ({1}) -> {2}",
                                    value, style, number);
               }
               catch (FormatException) {
                  Console.WriteLine("   '{0}' is invalid using {1}.", value, style);
               }
               catch (OverflowException) {
                  Console.WriteLine("   '{0}' is out of the range of a Single.", value);
               }
            }
         }
         Console.WriteLine();
      }
   }
}
// The example displays the following output:
// Parsing using the en-US culture:
//    ' 987.654E-2' is invalid using Currency.
//     987.654E-2 (Float) -> 9.87654
//    ' 987,654E-2' is invalid using Currency.
//    ' 987,654E-2' is invalid using Float.
//    (98765,43210) (Currency) -> -9.876543E+09
//    '(98765,43210)' is invalid using Float.
//    9,876,543.210 (Currency) -> 9876543
//    '9,876,543.210' is invalid using Float.
//    '9.876.543,210' is invalid using Currency.
//    '9.876.543,210' is invalid using Float.
//    '98_76_54_32,19' is invalid using Currency.
//    '98_76_54_32,19' is invalid using Float.
//
// Parsing using the nl-NL culture:
//    ' 987.654E-2' is invalid using Currency.
//    ' 987.654E-2' is invalid using Float.
//    ' 987,654E-2' is invalid using Currency.
//     987,654E-2 (Float) -> 9.87654
//    (98765,43210) (Currency) -> -98765.43
//    '(98765,43210)' is invalid using Float.
//    '9,876,543.210' is invalid using Currency.
//    '9,876,543.210' is invalid using Float.
//    9.876.543,210 (Currency) -> 9876543
//    '9.876.543,210' is invalid using Float.
//    '98_76_54_32,19' is invalid using Currency.
//    '98_76_54_32,19' is invalid using Float.
//
// Parsing using the Invariant culture:
//    ' 987.654E-2' is invalid using Currency.
//     987.654E-2 (Float) -> 9.87654
//    ' 987,654E-2' is invalid using Currency.
//    ' 987,654E-2' is invalid using Float.
//    (98765,43210) (Currency) -> -9.876543E+09
//    '(98765,43210)' is invalid using Float.
//    9,876,543.210 (Currency) -> 9876543
//    '9,876,543.210' is invalid using Float.
//    '9.876.543,210' is invalid using Currency.
//    '9.876.543,210' is invalid using Float.
//    98_76_54_32,19 (Currency) -> 9.876543E+09
//    '98_76_54_32,19' is invalid using Float.
Imports System.Globalization

Module Example
    Public Sub Main()
      ' Define an array of string values.
      Dim values() As String = { " 987.654E-2", " 987,654E-2", _
                                 "(98765,43210)", "9,876,543.210",  _
                                 "9.876.543,210",  "98_76_54_32,19" }
      ' Create a custom culture based on the invariant culture.
      Dim ci As New CultureInfo("")
      ci.NumberFormat.NumberGroupSizes = New Integer() { 2 }
      ci.NumberFormat.NumberGroupSeparator = "_"
      
      ' Define an array of format providers.
      Dim providers() As CultureInfo = { New CultureInfo("en-US"), _
                                             New CultureInfo("nl-NL"), ci }       
      
      ' Define an array of styles.
      Dim styles() As NumberStyles = { NumberStyles.Currency, NumberStyles.Float }
      
      ' Iterate the array of format providers.
      For Each provider As CultureInfo In providers
         Console.WriteLine("Parsing using the {0} culture:", _
                           If(provider.Name = String.Empty, "Invariant", provider.Name))
         ' Parse each element in the array of string values.
         For Each value As String In values
            For Each style As NumberStyles In styles
               Try
                  Dim number As Single = Single.Parse(value, style, provider)            
                  Console.WriteLine("   {0} ({1}) -> {2}", _
                                    value, style, number)
               Catch e As FormatException
                  Console.WriteLine("   '{0}' is invalid using {1}.", value, style)            
               Catch e As OverflowException
                  Console.WriteLine("   '{0}' is out of the range of a Single.", value)
               End Try 
            Next            
         Next         
         Console.WriteLine()
      Next
   End Sub   
End Module 
' The example displays the following output:
'       Parsing using the en-US culture:
'          ' 987.654E-2' is invalid using Currency.
'           987.654E-2 (Float) -> 9.87654
'          ' 987,654E-2' is invalid using Currency.
'          ' 987,654E-2' is invalid using Float.
'          (98765,43210) (Currency) -> -9.876543E+09
'          '(98765,43210)' is invalid using Float.
'          9,876,543.210 (Currency) -> 9876543
'          '9,876,543.210' is invalid using Float.
'          '9.876.543,210' is invalid using Currency.
'          '9.876.543,210' is invalid using Float.
'          '98_76_54_32,19' is invalid using Currency.
'          '98_76_54_32,19' is invalid using Float.
'       
'       Parsing using the nl-NL culture:
'          ' 987.654E-2' is invalid using Currency.
'          ' 987.654E-2' is invalid using Float.
'          ' 987,654E-2' is invalid using Currency.
'           987,654E-2 (Float) -> 9.87654
'          (98765,43210) (Currency) -> -98765.43
'          '(98765,43210)' is invalid using Float.
'          '9,876,543.210' is invalid using Currency.
'          '9,876,543.210' is invalid using Float.
'          9.876.543,210 (Currency) -> 9876543
'          '9.876.543,210' is invalid using Float.
'          '98_76_54_32,19' is invalid using Currency.
'          '98_76_54_32,19' is invalid using Float.
'       
'       Parsing using the Invariant culture:
'          ' 987.654E-2' is invalid using Currency.
'           987.654E-2 (Float) -> 9.87654
'          ' 987,654E-2' is invalid using Currency.
'          ' 987,654E-2' is invalid using Float.
'          (98765,43210) (Currency) -> -9.876543E+09
'          '(98765,43210)' is invalid using Float.
'          9,876,543.210 (Currency) -> 9876543
'          '9,876,543.210' is invalid using Float.
'          '9.876.543,210' is invalid using Currency.
'          '9.876.543,210' is invalid using Float.
'          98_76_54_32,19 (Currency) -> 9.876543E+09
'          '98_76_54_32,19' is invalid using Float.

Hinweise

In .NET Core 3.0 und höher werden Werte, die zu groß für die Darstellung sind, auf oder gerundet, PositiveInfinity wie in der IEEE NegativeInfinity 754-Spezifikation erforderlich. In früheren Versionen, einschließlich .NET Framework, führte die Analyse eines Werts, der zu groß war, um darzustellen, zu einem Fehler.

Der style -Parameter definiert die Stilelemente (z. B. Leerzeichen, Tausendertrennzeichen und Währungssymbole), die im -Parameter zulässig sind, s damit der Analysevorgang erfolgreich ist. Dabei muss es sich um eine Kombination von Bitflags aus der NumberStyles -Enumeration handeln. Die folgenden NumberStyles Member werden nicht unterstützt:

Der s -Parameter kann NumberFormatInfo.PositiveInfinitySymbol , oder für die von angegebene Kultur NumberFormatInfo.NegativeInfinitySymbol NumberFormatInfo.NaNSymbol provider enthalten. Je nach Wert von style kann es auch folgendes Format annehmen:

[ws] [ $ ] [Vorzeichen][ganzzahlige Ziffern,]ganzzahlige Ziffern[.[ Dezimalstellen]] [E[Vorzeichen]Exponentialziffern] [ws]

Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle wird jedes Element beschrieben.

Element Beschreibung
ws Eine Reihe von Leerzeichen. Leerraum kann am Anfang von angezeigt s werden, wenn style das Flag NumberStyles.AllowLeadingWhite einschließt, und es kann am Ende von angezeigt s werden, wenn style das Flag NumberStyles.AllowTrailingWhite einschließt.
$ Ein kulturspezifisches Währungssymbol. Ihre Position in der Zeichenfolge wird durch die NumberFormatInfo.CurrencyNegativePattern Eigenschaften und NumberFormatInfo.CurrencyPositivePattern der aktuellen Kultur definiert. Das Währungssymbol der aktuellen Kultur kann in angezeigt s werden, wenn style das Flag NumberStyles.AllowCurrencySymbol enthält.
sign Ein negatives Vorzeichen (-) oder ein positives Vorzeichen (+). Das Zeichen kann am Anfang von angezeigt s werden, wenn style das Flag NumberStyles.AllowLeadingSign enthält, und es kann am Ende von angezeigt s werden, wenn das Flag style NumberStyles.AllowTrailingSign enthält. Klammern können in verwendet s werden, um einen negativen Wert anzugeben, wenn style das Flag NumberStyles.AllowParentheses einschließt.
Ganzzahlige Ziffern Eine Reihe von Ziffern im Bereich von 0 bis 9, die den ganzzahligen Teil der Zahl angeben. Das Ganzzahlelement kann fehlen, wenn die Zeichenfolge das Element fractional-digits enthält.
, Ein kulturspezifisches Gruppentrennzeichen. Das Gruppentrennzeichen der aktuellen Kultur kann in angezeigt s werden, wenn style das Flag enthält. NumberStyles.AllowThousands
. Ein kulturspezifisches Dezimaltrennzeichen. Das Dezimaltrennzeichen der aktuellen Kultur kann in angezeigt s werden, wenn style das Flag NumberStyles.AllowDecimalPoint enthält.
Dezimalstellen Eine Reihe von Ziffern im Bereich von 0 bis 9, die den Bruchteil der Zahl angeben. Dezimalstellen können in angezeigt s werden, wenn style das Flag NumberStyles.AllowDecimalPoint einschließt.
E Das Zeichen "e" oder "E", das angibt, dass der Wert in exponentieller (wissenschaftlicher) Notation dargestellt wird. Der s -Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das Flag NumberStyles.AllowExponent enthält.
Exponentialziffern Eine Reihe von Ziffern im Bereich von 0 bis 9, die einen Exponenten angeben.

Hinweis

Alle abschließenden NUL-Zeichen (U+0000) in s werden vom Analysevorgang ignoriert, unabhängig vom Wert des style Arguments.

Eine Zeichenfolge mit nur Ziffern (die dem NumberStyles.None Format entspricht) wird immer erfolgreich analysiert, wenn sie sich im Bereich des Typs Single befindet. Die verbleibenden System.Globalization.NumberStyles Member steuern Elemente, die in der Eingabezeichenfolge vorhanden sein können, aber nicht vorhanden sein müssen. Die folgende Tabelle gibt an, wie sich einzelne NumberStyles Flags auf die Elemente auswirken, die möglicherweise in vorhanden s sind.

NumberStyles-Wert Zusätzlich zu Ziffern zulässige Elemente s
None Nur das Ganzzahlelement.
AllowDecimalPoint Die Dezimaltrennzeichen (.) und Dezimalstellenelemente.
AllowExponent Das Zeichen "e" oder "E", das die exponentielle Notation angibt. Dieses Flag allein unterstützt Werte in den Formularziffern E Ziffern; zusätzliche Flags sind erforderlich, um Zeichenfolgen erfolgreich mit Elementen wie positiven oder negativen Zeichen und Dezimaltrennzeichen zu analysieren.
AllowLeadingWhite Das ws-Element am Anfang von s .
AllowTrailingWhite Das ws-Element am Ende von s .
AllowLeadingSign Das Vorzeichenelement am Anfang von s .
AllowTrailingSign Das Vorzeichenelement am Ende von s .
AllowParentheses Das Vorzeichenelement in Form von Klammern, die den numerischen Wert einschließen.
AllowThousands Das Tausendertrennzeichen (,)-Element.
AllowCurrencySymbol Das Währungselement ($).
Currency Alle Elemente. Kann jedoch s keine Hexadezimalzahl oder eine Zahl in exponentieller Notation darstellen.
Float Das ws-Element am Anfang oder Ende von s , das Zeichen am Anfang von und s das Dezimaltrennzeichen (.). Der s -Parameter kann auch exponentielle Notation verwenden.
Number Die ws Elemente , , sign Tausendertrennzeichen (,) und Dezimaltrennzeichen (.).
Any Alle Elemente. Kann jedoch s keine Hexadezimalzahl darstellen.

Der provider Parameter ist eine IFormatProvider Implementierung. Die GetFormat -Methode gibt ein NumberFormatInfo -Objekt zurück, das kulturspezifische Informationen zum Format von value bereitstellt. In der Regel provider kann eine der folgenden Sein:

  • Ein CultureInfo -Objekt, das die Kultur darstellt, die numerische Formatierungsinformationen bereitstellt. Die GetFormat -Methode gibt das NumberFormatInfo -Objekt zurück, das numerische Formatierungsinformationen bereitstellt.

  • Ein NumberFormatInfo -Objekt, das Formatierungsinformationen bereitstellt. (Die Implementierung von GetFormat gibt sich einfach selbst zurück.)

  • Ein benutzerdefiniertes -Objekt, das die -Methode implementiert IFormatProvider und GetFormat verwendet, um das -Objekt zu instanziieren und NumberFormatInfo zurückzugeben, das Formatierungsinformationen bereitstellt.

Wenn provider null ist, wird das NumberFormatInfo -Objekt für die aktuelle Kultur verwendet.

Wenn s außerhalb des Bereichs des Single Datentyps liegt, löst die -Methode eine OverflowException für .NET Framework und .NET Core 2.2 und frühere Versionen aus. In .NET Core 3.0 und höheren Versionen wird zurückgegeben, Single.NegativeInfinity wenn kleiner als und wenn größer als s Single.MinValue Single.PositiveInfinity s Single.MaxValue ist.

Wenn im -Parameter während eines Analysevorgangs ein Trennzeichen gefunden wird s und die entsprechenden Währungs- oder Zahlentrennzeichen für Dezimal- und Gruppentrennzeichen identisch sind, geht der Analysevorgang davon aus, dass es sich bei dem Trennzeichen um ein Dezimaltrennzeichen und nicht um ein Gruppentrennzeichen handelt. Weitere Informationen zu Trennzeichen finden Sie unter CurrencyDecimalSeparator , NumberDecimalSeparator , und CurrencyGroupSeparator NumberGroupSeparator .

Siehe auch

Gilt für

Parse(String, IFormatProvider)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem bestimmten kulturabhängigen Format in die entsprechende Gleitkommazahl mit einfacher Genauigkeit.

public:
 static float Parse(System::String ^ s, IFormatProvider ^ provider);
public static float Parse (string s, IFormatProvider provider);
public static float Parse (string s, IFormatProvider? provider);
static member Parse : string * IFormatProvider -> single
Public Shared Function Parse (s As String, provider As IFormatProvider) As Single

Parameter

s
String

Eine Zeichenfolge, die eine zu konvertierende Zahl enthält.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s bereitstellt.

Gibt zurück

Single

Eine Gleitkommazahl mit einfacher Genauigkeit, die dem numerischen Wert oder Symbol in s entspricht.

Ausnahmen

s ist null.

s stellt keine Zahl in einem gültigen Format dar.

Nur .NET Framework und .NET Core 2.2 und früheren Versionen: s stellt eine Zahl dar, die kleiner als MinValue oder größer als MaxValue ist.

Beispiele

Das folgende Beispiel ist der Schaltflächenklick-Ereignishandler eines Webformulars. Es verwendet das von der HttpRequest.UserLanguages -Eigenschaft zurückgegebene Array, um das Gebietsschema des Benutzers zu bestimmen. Anschließend wird ein CultureInfo -Objekt instanziiert, das diesem Gebietsschema entspricht. Das NumberFormatInfo Objekt, das zu diesem Objekt gehört, CultureInfo wird dann an die Parse(String, IFormatProvider) -Methode übergeben, um die Eingabe des Benutzers in einen Wert zu Single konvertieren.

protected void OkToSingle_Click(object sender, EventArgs e)
{
   string locale;
   float number;
   CultureInfo culture;

   // Return if string is empty
   if (String.IsNullOrEmpty(this.inputNumber.Text))
      return;

   // Get locale of web request to determine possible format of number
   if (Request.UserLanguages.Length == 0)
      return;
   locale = Request.UserLanguages[0];
   if (String.IsNullOrEmpty(locale))
      return;

   // Instantiate CultureInfo object for the user's locale
   culture = new CultureInfo(locale);

   // Convert user input from a string to a number
   try
   {
      number = Single.Parse(this.inputNumber.Text, culture.NumberFormat);
   }
   catch (FormatException)
   {
      return;
   }
   catch (Exception)
   {
      return;
   }
   // Output number to label on web form
   this.outputNumber.Text = "Number is " + number.ToString();
}
Protected Sub OkToSingle_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OkToSingle.Click
   Dim locale As String
   Dim culture As CultureInfo
   Dim number As Single

   ' Return if string is empty
   If String.IsNullOrEmpty(Me.inputNumber.Text) Then Exit Sub

   ' Get locale of web request to determine possible format of number
   If Request.UserLanguages.Length = 0 Then Exit Sub
   locale = Request.UserLanguages(0)
   If String.IsNullOrEmpty(locale) Then Exit Sub

   ' Instantiate CultureInfo object for the user's locale
   culture = New CultureInfo(locale)

   ' Convert user input from a string to a number
   Try
      number = Single.Parse(Me.inputNumber.Text, culture.NumberFormat)
   Catch ex As FormatException
      Exit Sub
   Catch ex As OverflowException
      Exit Sub
   End Try

   ' Output number to label on web form
   Me.outputNumber.Text = "Number is " & number.ToString()
End Sub

Hinweise

In .NET Core 3.0 und höher werden Werte, die zu groß für die Darstellung sind, auf oder gerundet, wie es in der PositiveInfinity NegativeInfinity IEEE 754-Spezifikation erforderlich ist. In früheren Versionen, einschließlich .NET Framework, führte die Analyse eines Werts, der zu groß für die Darstellung war, zu einem Fehler.

Diese Überladung wird in der Regel verwendet, um Text, der auf verschiedene Weise formatiert werden kann, in einen Wert zu Single konvertieren. Sie kann beispielsweise verwendet werden, um den von einem Benutzer eingegebenen Text in ein HTML-Textfeld in einen numerischen Wert zu konvertieren.

Der s -Parameter wird mithilfe einer Kombination der NumberStyles.Float Flags und NumberStyles.AllowThousands interpretiert. Der -Parameter kann , oder für die durch angegebene Kultur enthalten, oder er s NumberFormatInfo.PositiveInfinitySymbol kann eine NumberFormatInfo.NegativeInfinitySymbol NumberFormatInfo.NaNSymbol provider Zeichenfolge im Folgenden enthalten:

[ws] [sign] ganzzahlige Ziffern[. [Dezimalziffern]] [E[Vorzeichen]exponential-digits] [ws]

Optionale Elemente werden in eckigen Klammern ([ und ]) umrahmen. Elemente, die den Begriff "Digits" enthalten, bestehen aus einer Reihe von numerischen Zeichen im Bereich von 0 bis 9.

Element Beschreibung
ws Eine Reihe von Leerzeichen.
sign Ein negatives Vorzeichensymbol (-) oder ein positives Vorzeichensymbol (+).
Ganzzahlige Ziffern Eine Reihe von Ziffern im Bereich von 0 bis 9, die den ganzzahligen Teil der Zahl angeben. Die Ausläufe ganzzahliger Ziffern können durch ein Gruppentrennzeichen partitioniert werden. In einigen Kulturen trennt ein Komma (,) z. B. Gruppen von Tausenden. Das Ganzzahlziffernelement kann fehlen, wenn die Zeichenfolge das Element fractional-digits enthält.
. Ein kulturspezifisches Dezimaltrennzeichen.
Dezimalziffern Eine Reihe von Ziffern im Bereich von 0 bis 9, die den Bruchteil der Zahl angeben.
E Das Zeichen "e" oder "E", das angibt, dass der Wert in exponentieller (wissenschaftlicher) Notation dargestellt wird.
Exponentialziffern Eine Reihe von Ziffern im Bereich von 0 bis 9, die einen Exponenten angeben.

Weitere Informationen zu numerischen Formaten finden Sie im Thema Formatieren von Typen.

Der provider -Parameter ist eine IFormatProvider Implementierung, deren GetFormat -Methode ein NumberFormatInfo -Objekt zurückgibt, das kulturspezifische Formatierungsinformationen bereitstellt. Wenn die Parse(String, IFormatProvider) -Methode aufgerufen wird, ruft sie die -Methode des Parameters auf provider und GetFormat übergibt ihr ein Type -Objekt, das den NumberFormatInfo Typ darstellt. Die GetFormat -Methode gibt dann das NumberFormatInfo -Objekt zurück, das Informationen über das Format des s Parameters bereitstellt. Es gibt drei Möglichkeiten, den provider -Parameter zum Bereitstellen von benutzerdefinierten Formatierungsinformationen für den Analysevorgang zu verwenden:

  • Sie können ein CultureInfo -Objekt übergeben, das die Kultur darstellt, die Formatierungsinformationen angibt. Die GetFormat -Methode gibt das NumberFormatInfo -Objekt zurück, das numerische Formatierungsinformationen für diese Kultur bereitstellt.

  • Sie können das tatsächliche NumberFormatInfo Objekt übergeben, das numerische Formatierungsinformationen bereitstellt. (Die Implementierung von GetFormat gibt sich einfach selbst zurück.)

  • Sie können ein benutzerdefiniertes -Objekt übergeben, das IFormatProvider implementiert. Die GetFormat -Methode instanziiert das NumberFormatInfo -Objekt, das Formatierungsinformationen bereitstellt, und gibt es zurück.

Wenn provider ist oder ein nicht abgerufen werden null NumberFormatInfo kann, werden die Formatierungsinformationen für die aktuelle Systemkultur verwendet.

Wenn s außerhalb des Bereichs des Single Datentyps liegt, löst die -Methode eine OverflowException für .NET Framework und .NET Core 2.2 und frühere Versionen aus. In .NET Core 3.0 und höheren Versionen wird zurückgegeben, Single.NegativeInfinity wenn kleiner als und wenn größer als s Single.MinValue Single.PositiveInfinity s Single.MaxValue ist.

Wenn im -Parameter während eines Analysevorgangs ein Trennzeichen gefunden wird s und die entsprechenden Währungs- oder Zahlentrennzeichen für Dezimal- und Gruppentrennzeichen identisch sind, geht der Analysevorgang davon aus, dass es sich bei dem Trennzeichen um ein Dezimaltrennzeichen und nicht um ein Gruppentrennzeichen handelt. Weitere Informationen zu Trennzeichen finden Sie unter CurrencyDecimalSeparator , NumberDecimalSeparator , und CurrencyGroupSeparator NumberGroupSeparator .

Beispiele für s sind "100", "-123,456,789", "123.45e+6", "+500", "5e2", "3.1416", "600.", "-.123" und "-Infinity".

Siehe auch

Gilt für

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Konvertiert eine Zeichenspanne mit der Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende Gleitkommazahl mit einfacher Genauigkeit

public static float Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.Float, IFormatProvider? provider = default);
public static float Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.Float, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> single
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.Float, Optional provider As IFormatProvider = Nothing) As Single

Parameter

s
ReadOnlySpan<Char>

Eine Zeichenspanne, die die zu konvertierende Zahl enthält

style
NumberStyles

Eine bitweise Kombination von Enumerationswerten, die die Stilelemente angeben, die in s vorhanden sein können. Ein häufig angegebener Wert ist Float in Kombination mit AllowThousands.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s bereitstellt.

Gibt zurück

Single

Eine Gleitkommazahl mit einfacher Genauigkeit, die dem numerischen Wert oder Symbol in s entspricht.

Ausnahmen

s stellt keinen numerischen Wert dar.

style ist kein NumberStyles-Wert.

- oder - style ist der AllowHexSpecifier-Wert.

Hinweise

In .NET Core 3.0 und höher werden Werte, die zu groß für die Darstellung sind, auf oder gerundet, PositiveInfinity wie in der IEEE NegativeInfinity 754-Spezifikation erforderlich. In früheren Versionen, einschließlich .NET Framework, führte die Analyse eines Werts, der zu groß war, um darzustellen, zu einem Fehler.

Wenn s außerhalb des Bereichs des Single Datentyps liegt, gibt die Methode Single.NegativeInfinity zurück, wenn kleiner als und s wenn größer als Single.MinValue Single.PositiveInfinity s Single.MaxValue ist.

Gilt für

Parse(String)

Konvertiert die Zeichenfolgendarstellung einer Zahl in die entsprechende Gleitkommazahl mit einfacher Genauigkeit.

public:
 static float Parse(System::String ^ s);
public static float Parse (string s);
static member Parse : string -> single
Public Shared Function Parse (s As String) As Single

Parameter

s
String

Eine Zeichenfolge, die eine zu konvertierende Zahl enthält.

Gibt zurück

Single

Eine Gleitkommazahl mit einfacher Genauigkeit, die dem numerischen Wert oder Symbol in s entspricht.

Ausnahmen

s ist null.

s stellt keine Zahl in einem gültigen Format dar.

Nur .NET Framework und .NET Core 2.2 und früheren Versionen: s stellt eine Zahl dar, die kleiner als MinValue oder größer als MaxValue ist.

Beispiele

Im folgenden Beispiel wird die Parse(String) -Methode verwendet, um ein Array von Zeichenfolgen in entsprechende Werte zu Single konvertieren.

using System;

public class Example
{
   public static void Main()
   {
      string[] values = { "100", "(100)", "-123,456,789", "123.45e+6", 
                          "+500", "5e2", "3.1416", "600.", "-.123", 
                          "-Infinity", "-1E-16", Double.MaxValue.ToString(), 
                          Single.MinValue.ToString(), String.Empty };
      foreach (string value in values)
      {
         try {   
            float number = Single.Parse(value);
            Console.WriteLine("{0} -> {1}", value, number);
         }
         catch (FormatException) {
            Console.WriteLine("'{0}' is not in a valid format.", value);
         }
         catch (OverflowException) {
            Console.WriteLine("{0} is outside the range of a Single.", value);
         }
      }                                  
   }
}
// The example displays the following output:
//       100 -> 100
//       '(100)' is not in a valid format.
//       -123,456,789 -> -1.234568E+08
//       123.45e+6 -> 1.2345E+08
//       +500 -> 500
//       5e2 -> 500
//       3.1416 -> 3.1416
//       600. -> 600
//       -.123 -> -0.123
//       -Infinity -> -Infinity
//       -1E-16 -> -1E-16
//       1.79769313486232E+308 is outside the range of a Single.
//       -3.402823E+38 -> -3.402823E+38
//       '' is not in a valid format.
Module Example
   Public Sub Main()
      Dim values() As String = { "100", "(100)", "-123,456,789", "123.45e+6", _
                                 "+500", "5e2", "3.1416", "600.", "-.123", _
                                 "-Infinity", "-1E-16", Double.MaxValue.ToString(), _
                                 Single.MinValue.ToString(), String.Empty }
      For Each value As String In values
         Try   
            Dim number As Single = Single.Parse(value)
            Console.WriteLine("{0} -> {1}", value, number)
         Catch e As FormatException
            Console.WriteLine("'{0}' is not in a valid format.", value)
         Catch e As OverflowException
            Console.WriteLine("{0} is outside the range of a Single.", value)
         End Try
      Next                                  
   End Sub
End Module
' The example displays the following output:
'       100 -> 100
'       '(100)' is not in a valid format.
'       -123,456,789 -> -1.234568E+08
'       123.45e+6 -> 1.2345E+08
'       +500 -> 500
'       5e2 -> 500
'       3.1416 -> 3.1416
'       600. -> 600
'       -.123 -> -0.123
'       -Infinity -> -Infinity
'       -1E-16 -> -1E-16
'       1.79769313486232E+308 is outside the range of a Single.
'       -3.402823E+38 -> -3.402823E+38
'       '' is not in a valid format.

Hinweise

In .NET Core 3.0 und höher werden Werte, die zu groß für die Darstellung sind, auf oder gerundet, wie es in der PositiveInfinity NegativeInfinity IEEE 754-Spezifikation erforderlich ist. In früheren Versionen, einschließlich .NET Framework, führte die Analyse eines Werts, der zu groß für die Darstellung war, zu einem Fehler.

Der -Parameter kann das , , oder eine Zeichenfolge der aktuellen s Kultur im PositiveInfinitySymbol Folgenden NegativeInfinitySymbol NaNSymbol enthalten:

[ws] [sign] [integrale Ziffern[,]] ganzzahlige Ziffern[. [Dezimalziffern]] [e[sign]exponential-digits] [ws]

Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle wird jedes Element beschrieben.

Element Beschreibung
ws Eine Reihe von Leerzeichen.
sign Ein negatives Vorzeichensymbol oder ein positives Vorzeichensymbol. Gültige Zeichen werden durch die Eigenschaften NumberFormatInfo.NegativeSign und der aktuellen Kultur NumberFormatInfo.PositiveSign bestimmt. Es kann nur ein führendes Vorzeichen verwendet werden.
Ganzzahlige Ziffern Eine Reihe von Ziffern im Bereich von 0 bis 9, die den ganzzahligen Teil der Zahl angeben. Die Ausläufe ganzzahliger Ziffern können durch ein Gruppentrennzeichen partitioniert werden. In einigen Kulturen trennt ein Komma (,) z. B. Gruppen von Tausenden. Das Ganzzahlziffernelement kann fehlen, wenn die Zeichenfolge das Element fractional-digits enthält.
, Ein kulturspezifisches Tausendertrennzeichen.
. Ein kulturspezifisches Dezimaltrennzeichen.
Dezimalziffern Eine Reihe von Ziffern im Bereich von 0 bis 9, die den Bruchteil der Zahl angeben.
E Das Zeichen "e" oder "E", das angibt, dass der Wert in exponentieller (wissenschaftlicher) Notation dargestellt wird.
Exponentialziffern Eine Reihe von Ziffern im Bereich von 0 bis 9, die einen Exponenten angeben.

Der s -Parameter wird mithilfe einer Kombination der NumberStyles.Float Flags und NumberStyles.AllowThousands interpretiert. Dies bedeutet, dass Leerzeichen und Tausendertrennzeichen zulässig sind, Währungssymbole jedoch nicht. Verwenden Sie zum expliziten Definieren der Elemente (z. B. Währungssymbole, Tausendertrennzeichen und Leerzeichen), die in vorhanden sein können, die s Parse(String, NumberStyles) -Methodenüberladung.

Der s -Parameter wird mithilfe der Formatierungsinformationen in einem -Objekt NumberFormatInfo analysiert, das für die aktuelle Systemkultur initialisiert wird. Weitere Informationen finden Sie unter CurrentInfo. Um eine Zeichenfolge mithilfe der Formatierungsinformationen einer bestimmten Kultur zu analysieren, verwenden Sie die Parse(String, IFormatProvider) - oder Parse(String, NumberStyles, IFormatProvider) -Methode.

Wenn Sie der Methode normalerweise eine Zeichenfolge übergeben, die durch Aufrufen der -Methode erstellt Parse ToString wird, wird der ursprüngliche Single Wert zurückgegeben. Aufgrund eines Genauigkeitsverlusts sind die Werte jedoch möglicherweise nicht gleich.

Wenn sich nicht im Bereich des Datentyps befindet, löst die -Methode eine on s Single .NET Framework und OverflowException .NET Core 2.2 und frühere Versionen aus. In .NET Core 3.0 und höheren Versionen wird zurückgegeben, wenn Single.NegativeInfinity kleiner als und wenn größer als s Single.MinValue Single.PositiveInfinity s Single.MaxValue ist.

Wenn im -Parameter während eines Analysevorganges ein Trennzeichen gefunden wird und die anwendbaren Dezimal- oder Zahlentrennzeichen und Gruppentrennzeichen identisch sind, geht der Analysevorgang davon aus, dass es sich bei dem Trennzeichen um ein Dezimaltrennzeichen und nicht um ein Gruppentrennzeichen s handelt. Weitere Informationen zu Trennzeichen finden Sie unter CurrencyDecimalSeparator , NumberDecimalSeparator , und CurrencyGroupSeparator NumberGroupSeparator .

Siehe auch

Gilt für

Parse(String, NumberStyles)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil in die entsprechende Gleitkommazahl mit einfacher Genauigkeit.

public:
 static float Parse(System::String ^ s, System::Globalization::NumberStyles style);
public static float Parse (string s, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> single
Public Shared Function Parse (s As String, style As NumberStyles) As Single

Parameter

s
String

Eine Zeichenfolge, die eine zu konvertierende Zahl enthält.

style
NumberStyles

Eine bitweise Kombination von Enumerationswerten, die die Stilelemente angeben, die in s vorhanden sein können. Ein häufig angegebener Wert ist Float in Kombination mit AllowThousands.

Gibt zurück

Single

Eine Gleitkommazahl mit einfacher Genauigkeit, die dem numerischen Wert oder Symbol in s entspricht.

Ausnahmen

s ist null.

s stellt keine Zahl in einem gültigen Format dar.

Nur .NET Framework und .NET Core 2.2 und frühere Versionen: s stellt eine Zahl dar, die kleiner als MinValue oder größer als MaxValue ist.

style ist kein NumberStyles-Wert.

- oder - style enthält den AllowHexSpecifier-Wert.

Beispiele

Im folgenden Beispiel wird die Parse(String, NumberStyles) -Methode verwendet, um die Zeichenfolgendarstellungen von -Werten zu Single analysieren. Im Beispiel werden Formatierungsinformationen für die Kultur "en-US" verwendet.

using System;
using System.Globalization;
using System.Threading;

public class ParseString
{
   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)
   {
      Single number;
      try
      {
         number = Single.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.
Imports System.Globalization
Imports System.Threading

Module ParseStrings
   Public Sub Main()
      ' Set current thread culture to en-US.
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US")
            
      Dim value As String
      Dim styles As NumberStyles
      
      ' 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 Or 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 Or NumberStyles.AllowCurrencySymbol
      ShowNumericValue(value, styles)
      
      ' Parse negative value with thousands separator and decimal.
      value = "(4,320.64)"
      styles = NumberStyles.AllowParentheses Or NumberStyles.AllowTrailingSign _
               Or NumberStyles.Float 
      ShowNumericValue(value, styles)
      
      styles = NumberStyles.AllowParentheses Or NumberStyles.AllowTrailingSign _
               Or NumberStyles.Float Or NumberStyles.AllowThousands
      ShowNumericValue(value, styles)
   End Sub
   
   Private Sub ShowNumericValue(value As String, styles As NumberStyles)
      Dim number As Single
      Try
         number = Single.Parse(value, styles)
         Console.WriteLine("Converted '{0}' using {1} to {2}.", _
                           value, styles.ToString(), number)
      Catch e As FormatException
         Console.WriteLine("Unable to parse '{0}' with styles {1}.", _
                           value, styles.ToString())
      End Try
      Console.WriteLine()                           
   End Sub
End Module
' 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.

Hinweise

In .NET Core 3.0 und höher werden Werte, die zu groß für die Darstellung sind, auf oder gerundet, wie es in der PositiveInfinity NegativeInfinity IEEE 754-Spezifikation erforderlich ist. In früheren Versionen, einschließlich .NET Framework, führte die Analyse eines Werts, der zu groß für die Darstellung war, zu einem Fehler.

Der -Parameter definiert die Stilelemente (z. B. Leerzeichen, Tausendertrennzeichen und Währungssymbole), die im -Parameter zulässig sind, damit der style s Analysevorgang erfolgreich ist. Es muss eine Kombination aus Bitflags aus der -Enumeration NumberStyles sein. Die folgenden NumberStyles Member werden nicht unterstützt:

Der -Parameter kann , , s und der aktuellen Kultur PositiveInfinitySymbol NegativeInfinitySymbol NaNSymbol enthalten. Abhängig vom Wert von kann style er auch das folgenden Formular haben:

[ws] [ $ ][sign][integral-digits[,]]integral-digits[. [Dezimalziffern]] [E[Vorzeichen]exponential-digits] [ws]

Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle wird jedes Element beschrieben.

ws
Eine Reihe von Leerzeichen. Leerraum kann am Anfang von angezeigt werden, wenn das -Flag enthält, und es kann am Ende von angezeigt s style NumberStyles.AllowLeadingWhite werden, s wenn das Flag style NumberStyles.AllowTrailingWhite enthält.

$
Ein kulturspezifisches Währungssymbol. Die Position in der Zeichenfolge wird durch die Eigenschaften NumberFormatInfo.CurrencyNegativePattern und der aktuellen Kultur NumberFormatInfo.CurrencyPositivePattern definiert. Das Währungssymbol der aktuellen Kultur kann in angezeigt s werden, wenn style das Flag NumberStyles.AllowCurrencySymbol enthält.

sign
Ein negatives Vorzeichensymbol (-) oder ein positives Vorzeichensymbol (+). Das Vorzeichen kann am Anfang von angezeigt werden, wenn das -Flag enthält, und es kann am Ende von angezeigt s style NumberStyles.AllowLeadingSign werden, s wenn das Flag style NumberStyles.AllowTrailingSign enthält. In können Klammern verwendet werden, s um einen negativen Wert anzugeben, wenn das Flag style NumberStyles.AllowParentheses enthält.

Ganzzahlige Ziffern
Eine Reihe von Ziffern im Bereich von 0 bis 9, die den ganzzahligen Teil der Zahl angeben. Das Ganzzahlziffernelement kann fehlen, wenn die Zeichenfolge das Element fractional-digits enthält.

,
Ein kulturspezifisches Gruppentrennzeichen. Das Gruppentrennzeichen der aktuellen Kultur kann in angezeigt s werden, wenn style das Flag NumberStyles.AllowThousands enthält.

.
Ein kulturspezifisches Dezimaltrennzeichen. Das Dezimaltrennzeichen der aktuellen Kultur kann in angezeigt s werden, wenn style das Flag NumberStyles.AllowDecimalPoint enthält.

Dezimalziffern
Eine Reihe von Ziffern im Bereich von 0 bis 9, die den Bruchteil der Zahl angeben. Dezimalziffern können in angezeigt s werden, wenn style das Flag NumberStyles.AllowDecimalPoint enthält.

E
Das Zeichen "e" oder "E", das angibt, dass der Wert in exponentieller (wissenschaftlicher) Notation dargestellt wird. Der value -Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das Flag NumberStyles.AllowExponent enthält.

Exponentialziffern
Eine Reihe von Ziffern im Bereich von 0 bis 9, die einen Exponenten angeben.

Hinweis

Alle beendenden NUL-Zeichen (U+0000) in werden vom Analysevorgang ignoriert, unabhängig vom Wert s des style Arguments.

Eine Zeichenfolge nur mit Ziffern (die dem Stil entspricht) wird immer erfolgreich analysiert, wenn sie sich im Bereich NumberStyles.None des Typs Single befindet. Die verbleibenden Member steuern Elemente, die in der Eingabezeichenfolge vorhanden sein können, aber System.Globalization.NumberStyles nicht vorhanden sein müssen. Die folgende Tabelle gibt an, wie NumberStyles sich einzelne Flags auf die Elemente auswirken, die möglicherweise in vorhanden s sind.

NumberStyles-Wert Zusätzlich zu Ziffern s zulässige Elemente
None Nur das Ganzzahlelement.
AllowDecimalPoint Das Dezimaltrennzeichen (.) und Bruchziffernelemente.
AllowExponent Das Zeichen "e" oder "E", das exponentielle Notation angibt. Dieses Flag selbst unterstützt Werte in den Formularziffern**E-Ziffern; Zusätzliche Flags sind erforderlich, um Zeichenfolgen erfolgreich mit Elementen wie positiven oder negativen Vorzeichen und Dezimaltrennzeichen zu analysieren.
AllowLeadingWhite Das ws-Element am Anfang von s .
AllowTrailingWhite Das ws-Element am Ende von s .
AllowLeadingSign Das Vorzeichenelement am Anfang von s .
AllowTrailingSign Das Vorzeichenelement am Ende von s .
AllowParentheses Das Vorzeichenelement in Form von Klammern, die den numerischen Wert umschließen.
AllowThousands Das Tausendertrennzeichenelement (,).
AllowCurrencySymbol Das Währungselement ($).
Currency Alle Elemente. Kann jedoch s keine Hexadezimalzahl oder eine Zahl in exponentieller Notation darstellen.
Float Das ws-Element am Anfang oder Ende von , das Zeichen am Anfang von und das s s Dezimaltrennzeichen (.). Der s -Parameter kann auch exponentielle Notation verwenden.
Number Die ws Elemente , , sign Tausendertrennzeichen (,) und Dezimaltrennzeichen (.).
Any Alle Elemente. Kann jedoch s keine Hexadezimalzahl darstellen.

Beispiele für sind s "100", "-123,456,789", "123.45e+6", "+500", "5e2", "3.1416", "600.", "-.123" und "-Infinity".

Der s -Parameter wird mithilfe der Formatierungsinformationen in einem -Objekt NumberFormatInfo analysiert, das für die aktuelle Systemkultur initialisiert wird. Um die Kultur anzugeben, deren Formatierungsinformationen für den Analysevorgang verwendet werden, rufen Sie die -Überladung Parse(String, NumberStyles, IFormatProvider) auf.

Wenn Sie der Methode normalerweise eine Zeichenfolge übergeben, die durch Aufrufen der -Methode erstellt Parse ToString wird, wird der ursprüngliche Single Wert zurückgegeben. Aufgrund eines Genauigkeitsverlusts sind die Werte jedoch möglicherweise nicht gleich.

Wenn sich nicht im Bereich des Datentyps befindet, löst die -Methode eine auf .NET Framework s Single und OverflowException .NET Core 2.2 und früheren Versionen aus. In .NET Core 3.0 und höheren Versionen wird zurückgegeben, wenn Single.NegativeInfinity kleiner als und wenn größer als s Single.MinValue Single.PositiveInfinity s Single.MaxValue ist.

Wenn im -Parameter während eines Analysevorganges ein Trennzeichen gefunden wird und die anwendbaren Dezimal- oder Zahlentrennzeichen und Gruppentrennzeichen identisch sind, geht der Analysevorgang davon aus, dass es sich bei dem Trennzeichen um ein Dezimaltrennzeichen und nicht um ein Gruppentrennzeichen s handelt. Weitere Informationen zu Trennzeichen finden Sie unter CurrencyDecimalSeparator , NumberDecimalSeparator , und CurrencyGroupSeparator NumberGroupSeparator .

Siehe auch

Gilt für