Single.TryParse Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
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.