Single.Parse-Methode (String, IFormatProvider)
Aktualisiert: November 2007
Konvertiert die Zeichenfolgendarstellung einer Zahl in einem bestimmten kulturabhängigen Format in die entsprechende Gleitkommazahl mit einfacher Genauigkeit.
Assembly: mscorlib (in mscorlib.dll)
public static float Parse( String s, IFormatProvider provider )
public static function Parse( s : String, provider : IFormatProvider ) : float
Parameter
- s
- Typ: System.String
Eine Zeichenfolge, die die zu konvertierende Zahl darstellt.
- provider
- Typ: System.IFormatProvider
Ein IFormatProvider, der kulturabhängige Formatierungsinformationen über s bereitstellt.
Rückgabewert
Typ: System.SingleEine Gleitkommazahl mit einfacher Genauigkeit, die dem numerischen Wert oder Symbol in s entspricht.
| Ausnahme | Bedingung |
|---|---|
| ArgumentNullException | Der s-Parameter ist null. |
| FormatException | s ist keine Zahl in einem gültigen Format. |
| OverflowException | s stellt eine Zahl dar, die kleiner als MinValue oder größer als MaxValue ist. |
Mit dieser Überladung wird normalerweise Text formatiert, der auf verschiedene Arten als Single-Wert formatiert werden kann. Hiermit kann z. B. der von einem Benutzer eingegebene Text in einem HTML-Textfeld in einen numerischen Wert konvertiert werden.
Der s-Parameter kann PositiveInfinitySymbol, NegativeInfinitySymbol, NaNSymbol oder eine Zeichenfolge der folgenden Form enthalten:
[LR][Vorzeichen]Ganzzahl-Ziffern[.[Bruch-Ziffern]][e[Vorzeichen]Exponenten-Ziffern][LR]
Optionale Elemente stehen in eckigen Klammern ("[" und "]"). Elemente, die den Begriff "Ziffern" enthalten, bestehen aus einer Folge von Ziffern zwischen 0 und 9.
Beispiele für s sind "100", "-123,456,789", "123.45e+6", "+500", "5e2", "3.1416", "600.", "-.123" und "-Infinity".
Diese Überladung von Parse verwendet den NumberStyles.Float-Wert und den NumberStyles.AllowThousands-Wert sowie die von provider angegebenen Formatierungsinformationen für Zahlen. Wenn provider null ist oder keine NumberFormatInfo-Klasse abgerufen werden kann, werden die Formatierungsinformationen für die aktuelle Systemkultur verwendet.
Weitere Informationen zu numerischen Formaten finden Sie im Thema Übersicht über Formatierung.
Wenn während eines Analysevorgangs im s-Parameter ein Trennzeichen gefunden wird und die Dezimal- und Gruppentrennzeichen für Währungs- und Zahlenangaben identisch sind, dann wertet der Analysevorgang das Trennzeichen als Dezimaltrennzeichen und nicht als Gruppentrennzeichen. Weitere Informationen über Trennzeichen finden Sie unter CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator und NumberGroupSeparator.
Im folgenden Beispiel wird der Ereignishandler für das Click-Ereignis eines Web Forms veranschaulicht. Es wird das von der HttpRequest.UserLanguages-Eigenschaft zurückgegebene Array verwendet, um das Gebietsschema des Benutzers zu bestimmen. Danach wird ein CultureInfo-Objekt instanziiert, das diesem Gebietsschema entspricht. Das zu diesem CultureInfo-Objekt gehörende NumberFormatInfo-Objekt wird dann an die Parse(String, IFormatProvider)-Methode übergeben, um die Benutzereingabe in einen Single-Wert zu 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(); }
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile für Smartphone, Windows Mobile für Pocket PC, Xbox 360
.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.