Single.TryParse Methode

Definitie

Converteert de tekenreeksweergave van een getal naar het equivalent van een drijvendekommagetal met één precisie. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

Overloads

Name Description
TryParse(String, IFormatProvider, Single)

Probeert een tekenreeks te parseren in een waarde.

TryParse(ReadOnlySpan<Char>, Single)

Converteert de tekenreeksweergave van een getal in een tekenbereik naar het equivalent van een drijvendekommagetal met één precisie. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

TryParse(String, Single)

Converteert de tekenreeksweergave van een getal naar het equivalent van een drijvendekommagetal met één precisie. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Single)

Probeert een reeks UTF-8 tekens te parseren in een waarde.

TryParse(ReadOnlySpan<Char>, IFormatProvider, Single)

Probeert een reeks tekens te parseren in een waarde.

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Single)

Probeert een reeks UTF-8 tekens te parseren in een waarde.

TryParse(ReadOnlySpan<Byte>, Single)

Hiermee wordt geprobeerd een UTF-8-tekenbereik te converteren dat de tekenreeksweergave van een getal bevat naar het equivalent van een drijvendekommagetal met één precisie.

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Single)

Converteert de spanweergave van een getal in een opgegeven stijl en cultuurspecifieke notatie naar het equivalent van drijvendekommagetal met één precisie. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

TryParse(String, NumberStyles, IFormatProvider, Single)

Converteert de tekenreeksweergave van een getal in een opgegeven stijl en cultuurspecifieke notatie naar het equivalent van drijvendekommagetal met één precisie. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

Opmerkingen

In .NET Core 3.0 en hoger worden waarden die te groot zijn om weer te geven afgerond op PositiveInfinity of NegativeInfinity zoals vereist door de IEEE 754-specificatie. In eerdere versies, met inbegrip van .NET Framework, parseert u een waarde die te groot was om aan te geven dat dit resulteert in een fout.

TryParse(String, IFormatProvider, Single)

Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs

Probeert een tekenreeks te parseren in een waarde.

public:
 static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = IParsable<float>::TryParse;
public static bool TryParse(string? s, IFormatProvider? provider, out float result);
static member TryParse : string * IFormatProvider * single -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As Single) As Boolean

Parameters

s
String

De tekenreeks die moet worden geparseerd.

provider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie biedt over s.

result
Single

Wanneer deze methode wordt geretourneerd, bevat dit het resultaat van het parseren s of van een niet-gedefinieerde waarde bij een fout.

Retouren

trueindien s geparseerd; anders. false

Van toepassing op

TryParse(ReadOnlySpan<Char>, Single)

Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs

Converteert de tekenreeksweergave van een getal in een tekenbereik naar het equivalent van een drijvendekommagetal met één precisie. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

public:
 static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] float % result);
public static bool TryParse(ReadOnlySpan<char> s, out float result);
static member TryParse : ReadOnlySpan<char> * single -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Single) As Boolean

Parameters

s
ReadOnlySpan<Char>

>Een tekenspanne die de tekenreeksweergave van het te converteren getal bevat.

result
Single

Wanneer deze methode wordt geretourneerd, bevat het drijvendekommagetal van één precisie van de s parameter, als de conversie is geslaagd of nul als de conversie is mislukt. De conversie mislukt als de s parameter leeg is null of geen getal in een geldige notatie heeft. Als s een geldig getal kleiner is dan Single.MinValue, result is NegativeInfinitydit . Als s een geldig getal groter is dan Single.MaxValue, result is PositiveInfinity. Deze parameter wordt niet-geïnitialiseerd doorgegeven; elke waarde die oorspronkelijk is opgegeven result , wordt overschreven.

Retouren

trueals s deze is geconverteerd; anders. false

Opmerkingen

In .NET Core 3.0 en hoger worden waarden die te groot zijn om weer te geven afgerond op PositiveInfinity of NegativeInfinity zoals vereist door de IEEE 754-specificatie. In eerdere versies, met inbegrip van .NET Framework, parseert u een waarde die te groot was om aan te geven dat dit resulteert in een fout.

Van toepassing op

TryParse(String, Single)

Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs

Converteert de tekenreeksweergave van een getal naar het equivalent van een drijvendekommagetal met één precisie. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] float % result);
public static bool TryParse(string s, out float result);
public static bool TryParse(string? s, out float result);
static member TryParse : string * single -> bool
Public Shared Function TryParse (s As String, ByRef result As Single) As Boolean

Parameters

s
String

Een tekenreeks die een getal aangeeft dat moet worden geconverteerd.

result
Single

Wanneer deze methode retourneert, bevat een drijvendekommagetal met één precisie dat gelijk is aan de numerieke waarde of het symbool in s, als de conversie is geslaagd of nul als de conversie is mislukt. De conversie mislukt als de s parameter een getal in een geldige notatie is null of Empty niet is. Het mislukt ook in .NET Framework als s een getal vertegenwoordigt dat kleiner is dan Single.MinValue of groter is dan Single.MaxValue. Deze parameter wordt niet-geïnitialiseerd doorgegeven; elke waarde die oorspronkelijk is opgegeven result , wordt overschreven.

Retouren

trueals s deze is geconverteerd; anders. false

Voorbeelden

In het volgende voorbeeld wordt de TryParse(String, Single) methode gebruikt om de tekenreeksweergaven van numerieke waarden te converteren naar Single waarden. Hierbij wordt ervan uitgegaan dat en-US de huidige cultuur is.

string value;
float number;

// Parse a floating-point value with a thousands separator.
value = "1,643.57";
if (Single.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);

// Parse a floating-point value with a currency symbol and a
// thousands separator.
value = "$1,643.57";
if (Single.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);

// Parse value in exponential notation.
value = "-1.643e6";
if (Single.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);

// Parse a negative integer value.
value = "-168934617882109132";
if (Single.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);
// The example displays the following output:
//       1643.57
//       Unable to parse '$1,643.57'.
//       -164300
//       -1.689346E+17
// Parse a floating-point value with a thousands separator.
let value = "1,643.57"
match Single.TryParse value with
| true, number ->
    printfn $"{number}"
| _ ->
    printfn $"Unable to parse '{value}'."

// Parse a floating-point value with a currency symbol and a
// thousands separator.
let value = "$1,643.57"
match Single.TryParse value with
| true, number ->
    printfn $"{number}"
| _ ->
    printfn $"Unable to parse '{value}'."

// Parse value in exponential notation.
let value = "-1.643e6"
match Single.TryParse value with
| true, number ->
    printfn $"{number}"
| _ ->
    printfn $"Unable to parse '{value}'."

// Parse a negative integer value.
let value = "-168934617882109132"
match Single.TryParse value with
| true, number ->
    printfn $"{number}"
| _ ->
    printfn $"Unable to parse '{value}'."
// The example displays the following output:
//       1643.57
//       Unable to parse '$1,643.57'.
//       -164300
//       -1.689346E+17
Dim value As String
Dim number As Single

' Parse a floating-point value with a thousands separator.
value = "1,643.57"
If Single.TryParse(value, number) Then
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)
End If

' Parse a floating-point value with a currency symbol and a
' thousands separator.
value = "$1,643.57"
If Single.TryParse(value, number) Then
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)
End If

' Parse value in exponential notation.
value = "-1.643e6"
If Single.TryParse(value, number)
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)
End If

' Parse a negative integer number.
value = "-168934617882109132"
If Single.TryParse(value, number)
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)
End If
' The example displays the following output:
'       1643.57
'       Unable to parse '$1,643.57'.
'       -1643000
'       -1.689346E+17

Opmerkingen

In .NET Core 3.0 en hoger worden waarden die te groot zijn om weer te geven afgerond op PositiveInfinity of NegativeInfinity zoals vereist door de IEEE 754-specificatie. In eerdere versies, met inbegrip van .NET Framework, parseert u een waarde die te groot was om aan te geven dat dit resulteert in een fout.

Deze overbelasting verschilt van de Single.Parse(String) methode door een Booleaanse waarde te retourneren die aangeeft of de parseringsbewerking is geslaagd in plaats van de geparseerde numerieke waarde te retourneren. Het elimineert de noodzaak om uitzonderingsafhandeling te gebruiken om te testen op een FormatException in het geval dat s ongeldig is en niet kan worden geparseerd.

De s parameter kan een symbool of PositiveInfinitySymbolNegativeInfinitySymbol symbool bevattenNaNSymbol. Deze tekenreeksvergelijking is niet hoofdlettergevoelig in .NET Core 3.0 en latere versies, maar is hoofdlettergevoelig in eerdere versies, waaronder .NET Framework. De s parameter kan ook een tekenreeks van het formulier zijn:

[ws][teken][integral-digits,]integral-digits[.[ fractional-digits][e[sign]exponential-digits][ws]

Elementen in vierkante haken zijn optioneel. In de volgende tabel wordt elk element beschreven.

Element Beschrijving
Ws Een reeks witruimtetekens.
ondertekenen Een negatief teken of een positief teken.
integral-digits Een reeks numerieke tekens, variërend van 0 tot 9, waarmee het integraal deel van het getal wordt opgegeven. Integrale cijfers kunnen afwezig zijn als er fractionele cijfers zijn.
, Een cultuurspecifiek groepsscheidingsteken.
. Een cultuurspecifiek decimaalteken.
fractionele cijfers Een reeks numerieke tekens, variërend van 0 tot 9, waarmee het breukgedeelte van het getal wordt opgegeven.
E Een hoofdletter of kleine letter 'e', dat een exponentiële (wetenschappelijke) notatie aangeeft.
exponentiële cijfers Een reeks numerieke tekens tussen 0 en 9 die een exponent opgeven.

De s parameter wordt geïnterpreteerd met behulp van een combinatie van de NumberStyles.Float en NumberStyles.AllowThousands vlaggen. Dit betekent dat witruimte en scheidingstekens voor duizendtallen zijn toegestaan, maar valutasymbolen niet. Als u de elementen (zoals valutasymbolen, scheidingstekens voor duizendtallen en witruimte) expliciet wilt definiëren, sgebruikt u de overbelasting van de TryParse(String, NumberStyles, IFormatProvider, Single) methode.

De s parameter wordt geparseerd met behulp van de opmaakgegevens in een NumberFormatInfo object dat is geïnitialiseerd voor de huidige systeemcultuur. Zie NumberFormatInfo.CurrentInfo voor meer informatie. Als u een tekenreeks wilt parseren met behulp van de opmaakgegevens van een andere opgegeven cultuur, gebruikt u de overbelasting van de TryParse(String, NumberStyles, IFormatProvider, Single) methode.

Normaal gesproken wordt de oorspronkelijke Single.TryParse waarde geretourneerd als u de Single.ToString methode doorgeeft een tekenreeks die wordt gemaakt door de Single methode aan te roepen. Vanwege een verlies van precisie zijn de waarden echter mogelijk niet gelijk.

Als s buiten het gegevenstype Single valt, retourneert de methode false in .NET Framework. In .NET Core 3.0 en latere versies wordt Single.NegativeInfinity geretourneerd als s kleiner is dan Single.MinValue en Single.PositiveInfinity als s groter is dan Single.MaxValue.

Als er tijdens een parseringsbewerking een scheidingsteken wordt aangetroffen in de s parameter en de toepasselijke valuta- of getaldecimaaltekens en groepsscheidingstekens hetzelfde zijn, wordt bij de parseringsbewerking ervan uitgegaan dat het scheidingsteken een decimaalteken is in plaats van een scheidingsteken voor groepen. Zie , CurrencyDecimalSeparator, en NumberDecimalSeparatorCurrencyGroupSeparatorvoor meer informatie over scheidingstekens NumberGroupSeparator.

Zie ook

Van toepassing op

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Single)

Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs

Probeert een reeks UTF-8 tekens te parseren in een waarde.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = IUtf8SpanParsable<float>::TryParse;
public static bool TryParse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out float result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * single -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As Single) As Boolean

Parameters

utf8Text
ReadOnlySpan<Byte>

Het bereik van UTF-8 tekens om te parseren.

provider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie biedt over utf8Text.

result
Single

Bij retour bevat het resultaat van het parseren utf8Text of een niet-gedefinieerde waarde bij een fout.

Retouren

trueindien utf8Text geparseerd; anders. false

Van toepassing op

TryParse(ReadOnlySpan<Char>, IFormatProvider, Single)

Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs

Probeert een reeks tekens te parseren in een waarde.

public:
 static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = ISpanParsable<float>::TryParse;
public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out float result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * single -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As Single) As Boolean

Parameters

s
ReadOnlySpan<Char>

De reeks tekens die moeten worden geparseerd.

provider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie biedt over s.

result
Single

Wanneer deze methode wordt geretourneerd, bevat het resultaat van het parseren sof een niet-gedefinieerde waarde bij een fout.

Retouren

trueindien s geparseerd; anders. false

Van toepassing op

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Single)

Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs

Probeert een reeks UTF-8 tekens te parseren in een waarde.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = System::Numerics::INumberBase<float>::TryParse;
public static bool TryParse(ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out float result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * single -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As Single) As Boolean

Parameters

utf8Text
ReadOnlySpan<Byte>

Het bereik van UTF-8 tekens om te parseren.

style
NumberStyles

Een bitsgewijze combinatie van getalstijlen die aanwezig kunnen zijn in utf8Text.

provider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie biedt over utf8Text.

result
Single

Bij retour bevat het resultaat van het parseren utf8Text of een niet-gedefinieerde waarde bij een fout.

Retouren

trueindien utf8Text geparseerd; anders. false

Van toepassing op

TryParse(ReadOnlySpan<Byte>, Single)

Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs

Hiermee wordt geprobeerd een UTF-8-tekenbereik te converteren dat de tekenreeksweergave van een getal bevat naar het equivalent van een drijvendekommagetal met één precisie.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] float % result);
public static bool TryParse(ReadOnlySpan<byte> utf8Text, out float result);
static member TryParse : ReadOnlySpan<byte> * single -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As Single) As Boolean

Parameters

utf8Text
ReadOnlySpan<Byte>

Een alleen-lezen UTF-8-tekenbereik dat het getal bevat dat moet worden geconverteerd.

result
Single

Wanneer deze methode retourneert, bevat een drijvendekommagetal met één precisie van de numerieke waarde of het symbool dat is opgenomen als utf8Text de conversie is geslaagd of nul als de conversie is mislukt. De conversie mislukt als de indeling utf8Text al Empty dan niet geldig is. Deze parameter wordt niet-geïnitialiseerd doorgegeven; elke waarde die oorspronkelijk is opgegeven in het resultaat, wordt overschreven.

Retouren

trueals utf8Text deze is geconverteerd; anders. false

Van toepassing op

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Single)

Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs

Converteert de spanweergave van een getal in een opgegeven stijl en cultuurspecifieke notatie naar het equivalent van drijvendekommagetal met één precisie. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

public:
 static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = System::Numerics::INumberBase<float>::TryParse;
public:
 static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result);
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out float result);
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out float result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * single -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Single) As Boolean

Parameters

s
ReadOnlySpan<Char>

Een alleen-lezen tekenbereik dat het getal bevat dat moet worden geconverteerd. De periode wordt geïnterpreteerd met behulp van de stijl die is opgegeven door style.

style
NumberStyles

Een bitsgewijze combinatie van opsommingswaarden die de toegestane notatie van s. Een typische waarde die moet worden opgegeven, wordt Float gecombineerd met AllowThousands.

provider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie over slevert.

result
Single

Wanneer deze methode retourneert, bevat het drijvendekommagetal met één precisie dat gelijk is aan de numerieke waarde of het symbool in s, als de conversie is geslaagd of nul als de conversie is mislukt. De conversie mislukt als de s parameter wel null of Emptyniet voldoet aan een indeling die voldoet aan styleeen getal dat kleiner is dan Single.MinValue of groter is dan Single.MaxValue, of als style het geen geldige combinatie is van NumberStyles geïnventariseerd constanten. Deze parameter wordt niet-geïnitialiseerd doorgegeven; elke waarde die oorspronkelijk is opgegeven result , wordt overschreven.

Retouren

trueals s deze is geconverteerd; anders. false

Opmerkingen

In .NET Core 3.0 en hoger worden waarden die te groot zijn om weer te geven afgerond op PositiveInfinity of NegativeInfinity zoals vereist door de IEEE 754-specificatie. In eerdere versies, met inbegrip van .NET Framework, parseert u een waarde die te groot was om aan te geven dat dit resulteert in een fout.

Van toepassing op

TryParse(String, NumberStyles, IFormatProvider, Single)

Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs
Bron:
Single.cs

Converteert de tekenreeksweergave van een getal in een opgegeven stijl en cultuurspecifieke notatie naar het equivalent van drijvendekommagetal met één precisie. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result);
public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = System::Numerics::INumberBase<float>::TryParse;
public static bool TryParse(string s, System.Globalization.NumberStyles style, IFormatProvider provider, out float result);
public static bool TryParse(string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out float result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * single -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Single) As Boolean

Parameters

s
String

Een tekenreeks die een getal aangeeft dat moet worden geconverteerd.

style
NumberStyles

Een bitsgewijze combinatie van opsommingswaarden die de toegestane notatie van s. Een typische waarde die moet worden opgegeven, wordt Float gecombineerd met AllowThousands.

provider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie over slevert.

result
Single

Wanneer deze methode retourneert, bevat het drijvendekommagetal met één precisie dat gelijk is aan de numerieke waarde of het symbool in s, als de conversie is geslaagd of nul als de conversie is mislukt. De conversie mislukt als de s parameter wel null of Emptyniet voldoet aan een indeling die voldoet aan style, of als style het geen geldige combinatie van NumberStyles opsommingsconstanten is. Het mislukt ook in .NET Framework als s een getal vertegenwoordigt dat kleiner is dan Single.MinValue of groter is dan Single.MaxValue. Deze parameter wordt niet-geïnitialiseerd doorgegeven; elke waarde die oorspronkelijk is opgegeven result , wordt overschreven.

Retouren

trueals s deze is geconverteerd; anders. false

Uitzonderingen

style is geen NumberStyles waarde.

– of –

style is de AllowHexSpecifier waarde.

Voorbeelden

In het volgende voorbeeld ziet u hoe de methode wordt Single.TryParse(String, NumberStyles, IFormatProvider, Single) gebruikt om de tekenreeksweergave te parseren van getallen die een bepaalde stijl hebben en die zijn opgemaakt met behulp van de conventies van een bepaalde cultuur.

string value;
System.Globalization.NumberStyles style;
System.Globalization.CultureInfo culture;
float number;

// Parse currency value using en-GB culture.
value = "£1,097.63";
style = System.Globalization.NumberStyles.Number |
        System.Globalization.NumberStyles.AllowCurrencySymbol;
culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-GB");
if (Single.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);

value = "1345,978";
style = System.Globalization.NumberStyles.AllowDecimalPoint;
culture = System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR");
if (Single.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);

value = "1.345,978";
style = System.Globalization.NumberStyles.AllowDecimalPoint |
        System.Globalization.NumberStyles.AllowThousands;
culture = System.Globalization.CultureInfo.CreateSpecificCulture("es-ES");
if (Single.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);

value = "1 345,978";
if (Single.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// The example displays the following output:
//       Converted '£1,097.63' to 1097.63.
//       Converted '1345,978' to 1345.978.
//       Converted '1.345,978' to 1345.978.
//       Unable to convert '1 345,978'.
// Parse currency value using en-GB culture.
let value = "£1,097.63"
let style = System.Globalization.NumberStyles.Number ||| System.Globalization.NumberStyles.AllowCurrencySymbol
let culture = System.Globalization.CultureInfo.CreateSpecificCulture "en-GB"
match Single.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ ->
    printfn $"Unable to convert '{value}'."

let value = "1345,978"
let style = System.Globalization.NumberStyles.AllowDecimalPoint
let culture = System.Globalization.CultureInfo.CreateSpecificCulture "fr-FR"
match Single.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ ->
    printfn $"Unable to convert '{value}'."

let value = "1.345,978"
let style = System.Globalization.NumberStyles.AllowDecimalPoint ||| System.Globalization.NumberStyles.AllowThousands
let culture = System.Globalization.CultureInfo.CreateSpecificCulture "es-ES"
match Single.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ ->
    printfn $"Unable to convert '{value}'."

let value = "1 345,978"
match Single.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ ->
    printfn $"Unable to convert '{value}'."
// The example displays the following output:
//       Converted '£1,097.63' to 1097.63.
//       Converted '1345,978' to 1345.978.
//       Converted '1.345,978' to 1345.978.
//       Unable to convert '1 345,978'.
Dim value As String
Dim style As System.Globalization.NumberStyles
Dim culture As System.Globalization.CultureInfo
Dim number As Single

' Parse currency value using en-GB culture.
value = "£1,097.63"
style = System.Globalization.NumberStyles.Number Or _
        System.Globalization.NumberStyles.AllowCurrencySymbol
culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-GB")
If Single.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If

value = "1345,978"
style = System.Globalization.NumberStyles.AllowDecimalPoint
culture = System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR")
If Single.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If

value = "1.345,978"
style = System.Globalization.NumberStyles.AllowDecimalPoint Or _
        System.Globalization.NumberStyles.AllowThousands
culture = System.Globalization.CultureInfo.CreateSpecificCulture("es-ES")
If Single.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If

value = "1 345,978"
If Single.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If
' The example displays the following output:
'       Converted '£1,097.63' to 1097.63.
'       Converted '1345,978' to 1345.978.
'       Converted '1.345,978' to 1345.978.
'       Unable to convert '1 345,978'.

Opmerkingen

In .NET Core 3.0 en hoger worden waarden die te groot zijn om weer te geven afgerond op PositiveInfinity of NegativeInfinity zoals vereist door de IEEE 754-specificatie. In eerdere versies, met inbegrip van .NET Framework, parseert u een waarde die te groot was om aan te geven dat dit resulteert in een fout.

Deze overbelasting verschilt van de Parse(String, NumberStyles, IFormatProvider) methode door een Booleaanse waarde te retourneren die aangeeft of de parseringsbewerking is geslaagd in plaats van de geparseerde numerieke waarde te retourneren. Het elimineert de noodzaak om uitzonderingsafhandeling te gebruiken om te testen op een FormatException in het geval dat s ongeldig is en niet kan worden geparseerd.

De style parameter definieert de toegestane indeling van de parameter om de s parseringsbewerking te voltooien. Dit moet een combinatie zijn van bitvlagmen uit de NumberStyles opsomming. De volgende NumberStyles leden worden niet ondersteund:

De s parameter kan PositiveInfinitySymbol, NegativeInfinitySymbolof NaNSymbol symbool voor de cultuur die wordt aangegeven door provider. Deze tekenreeksvergelijking is niet hoofdlettergevoelig in .NET Core 3.0 en latere versies, maar is hoofdlettergevoelig in eerdere versies, waaronder .NET Framework. Afhankelijk van de waarde van style, kan de s parameter bovendien de volgende elementen bevatten:

[ws] [$] [teken][integral-digits,]integral-digits[.fractional-digits][e[sign]exponential-digits][ws]

Elementen in vierkante haken ([ en ]) zijn optioneel. In de volgende tabel wordt elk element beschreven.

Element Beschrijving
Ws Optionele witruimte. Witruimte kan aan het begin van s de styleNumberStyles.AllowLeadingWhite vlag worden weergegeven. Deze kan aan het einde van s de styleNumberStyles.AllowTrailingWhite vlag worden weergegeven.
$ Een cultuurspecifiek valutasymbool. De positie in de tekenreeks wordt gedefinieerd door de NumberFormatInfo.CurrencyNegativePattern of NumberFormatInfo.CurrencyPositivePattern eigenschappen van het NumberFormatInfo object dat wordt geretourneerd door de IFormatProvider.GetFormat methode van de provider parameter. Het valutasymbool kan worden weergegeven s als style deze de NumberStyles.AllowCurrencySymbol vlag bevat.
ondertekenen Een optioneel teken. Het teken kan aan het begin van s de styleNumberStyles.AllowLeadingSign vlag worden weergegeven en kan aan het einde van s de vlag worden weergegeven.styleNumberStyles.AllowTrailingSign Haakjes kunnen worden gebruikt s om een negatieve waarde aan te geven als style deze de NumberStyles.AllowParentheses vlag bevat.
integral-digits Een reeks cijfers tussen 0 en 9 die het integraal deel van het getal aangeven. Integrale cijfers kunnen afwezig zijn als er fractionele cijfers zijn.
, Een cultuurspecifiek scheidingsteken voor duizendtallen. Het scheidingsteken voor duizendtallen van de huidige cultuur kan worden weergegeven als sstyle deze de NumberStyles.AllowThousands vlag bevat.
. Een cultuurspecifiek decimaalteken. Het decimale puntsymbool van de huidige cultuur kan worden weergegeven s als style deze de NumberStyles.AllowDecimalPoint vlag bevat.
fractionele cijfers Een reeks cijfers tussen 0 en 9 die het breukgedeelte van het getal aangeven. Fractionele cijfers kunnen worden weergegeven als sstyle deze de NumberStyles.AllowDecimalPoint vlag bevat.
e Het e- of E-teken, dat aangeeft dat s een getal kan vertegenwoordigen met exponentiële notatie. De s parameter kan een getal in exponentiële notatie vertegenwoordigen als de stijl de NumberStyles.AllowExponent vlag bevat.
exponentiële cijfers Een reeks cijfers tussen 0 en 9 die een exponent opgeven.

Note

Alle nultekens (U+0000) s worden genegeerd door de parseringsbewerking, ongeacht de waarde van het style argument.

Een tekenreeks met alleen cijfers (die overeenkomt met de NumberStyles.None stijl) parseert altijd goed als deze zich in het bereik van het Single type bevindt. De overige System.Globalization.NumberStyles leden bepalen elementen die mogelijk wel maar niet aanwezig zijn in de invoertekenreeks. De volgende tabel geeft aan hoe afzonderlijke NumberStyles vlaggen van invloed zijn op de elementen die mogelijk aanwezig zijn in s.

NumberStyles-waarde Elementen die naast cijfers zijn toegestaan
None Het element integrale cijfers alleen.
AllowDecimalPoint De elementen . en fractionele cijfers .
AllowExponent De s parameter kan ook exponentiële notatie gebruiken. Deze vlag ondersteunt op zichzelf waarden in de vorm integral-digitsEexponentiële cijfers; er zijn extra vlaggen nodig om tekenreeksen in exponentiële notatie te parseren met elementen zoals positieve of negatieve tekens en decimale kommasymbolen.
AllowLeadingWhite Het ws-element aan het begin van s.
AllowTrailingWhite Het ws-element aan het einde van s.
AllowLeadingSign Het tekenelement aan het begin van s.
AllowTrailingSign Het tekenelement aan het einde van s.
AllowParentheses Het tekenelement in de vorm van haakjes tussen de numerieke waarde.
AllowThousands Het , element.
AllowCurrencySymbol Het $ element.
Currency Alles. De s parameter kan geen hexadecimaal getal of een getal in exponentiële notatie vertegenwoordigen.
Float Het ws-element aan het begin of einde van s, teken aan het begin van s, en het symbool . De s parameter kan ook exponentiële notatie gebruiken.
Number De wselementen , signscheidingsteken voor duizendtallen (,) en decimaalteken (.).
Any Alle stijlen, behalve s geen hexadecimaal getal.

De provider parameter is een IFormatProvider implementatie waarvan de GetFormat methode een NumberFormatInfo object retourneert dat cultuurspecifieke opmaakinformatie biedt. Wanneer de TryParse(String, NumberStyles, IFormatProvider, Single) methode wordt aangeroepen, wordt de methode van provider de GetFormat parameter aangeroepen en doorgegeven aan een Type object dat het NumberFormatInfo type vertegenwoordigt. De GetFormat methode retourneert vervolgens het NumberFormatInfo object dat informatie biedt over de indeling van de s parameter. Er zijn drie manieren om de provider parameter te gebruiken om aangepaste opmaakgegevens op te geven voor de parseringsbewerking:

  • U kunt een CultureInfo object doorgeven dat de cultuur vertegenwoordigt die opmaakinformatie levert. De GetFormat methode retourneert het NumberFormatInfo object dat numerieke opmaakinformatie biedt voor die cultuur.

  • U kunt het werkelijke NumberFormatInfo object doorgeven dat numerieke opmaakgegevens biedt. (De implementatie van GetFormat alleen retourneert zichzelf.)

  • U kunt een aangepast object doorgeven dat wordt geïmplementeerd IFormatProvider. De GetFormat methode instantieert en retourneert het NumberFormatInfo object dat opmaakinformatie biedt.

Als provider dat het is null, wordt de opmaak s geïnterpreteerd op basis van het NumberFormatInfo object van de huidige cultuur.

Als s buiten het bereik van het gegevenstype Single valt, genereert de methode een OverflowException in .NET Framework. In .NET Core 3.0 en latere versies wordt Single.NegativeInfinity geretourneerd als s kleiner is dan Single.MinValue en Single.PositiveInfinity als s groter is dan Single.MaxValue.

Als er tijdens een parseringsbewerking een scheidingsteken wordt aangetroffen in de s parameter en de toepasselijke valuta- of getaldecimaaltekens en groepsscheidingstekens hetzelfde zijn, wordt bij de parseringsbewerking ervan uitgegaan dat het scheidingsteken een decimaalteken is in plaats van een scheidingsteken voor groepen. Zie , CurrencyDecimalSeparator, en NumberDecimalSeparatorCurrencyGroupSeparatorvoor meer informatie over scheidingstekens NumberGroupSeparator.

Zie ook

Van toepassing op