Single.TryParse Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Konverterar strängrepresentationen av ett tal till dess flyttalsnummer med enkel precision. Ett returvärde anger om konverteringen lyckades eller misslyckades.
Överlagringar
| Name | Description |
|---|---|
| TryParse(String, IFormatProvider, Single) |
Försöker parsa en sträng till ett värde. |
| TryParse(ReadOnlySpan<Char>, Single) |
Konverterar strängrepresentationen av ett tal i ett teckenintervall till dess flytande punktnummer med enkel precision. Ett returvärde anger om konverteringen lyckades eller misslyckades. |
| TryParse(String, Single) |
Konverterar strängrepresentationen av ett tal till dess flyttalsnummer med enkel precision. Ett returvärde anger om konverteringen lyckades eller misslyckades. |
| TryParse(ReadOnlySpan<Byte>, IFormatProvider, Single) |
Försöker parsa ett intervall med UTF-8 tecken till ett värde. |
| TryParse(ReadOnlySpan<Char>, IFormatProvider, Single) |
Försöker parsa ett teckenintervall till ett värde. |
| TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Single) |
Försöker parsa ett intervall med UTF-8 tecken till ett värde. |
| TryParse(ReadOnlySpan<Byte>, Single) |
Försöker konvertera ett UTF-8-teckensintervall som innehåller strängrepresentationen av ett tal till dess flytande punktnummer med enkel precision. |
| TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Single) |
Konverterar spännviddsrepresentationen av ett tal i ett angivet format och kulturspecifikt format till dess flytande punktnummer med enkel precision. Ett returvärde anger om konverteringen lyckades eller misslyckades. |
| TryParse(String, NumberStyles, IFormatProvider, Single) |
Konverterar strängrepresentationen av ett tal i ett angivet format och kulturspecifikt format till dess flytande punktnummer med enkel precision. Ett returvärde anger om konverteringen lyckades eller misslyckades. |
Kommentarer
I .NET Core 3.0 och senare avrundas värden som är för stora för att representera till PositiveInfinity eller NegativeInfinity enligt IEEE 754-specifikationen. I tidigare versioner, inklusive .NET Framework, resulterade parsning av ett värde som var för stort för att representera ett fel.
TryParse(String, IFormatProvider, Single)
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
Försöker parsa en sträng till ett värde.
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
Parametrar
- s
- String
Strängen som ska parsas.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.
- result
- Single
När den här metoden returneras innehåller resultatet av parsning s eller ett odefinierat värde vid fel.
Returer
trueom s har parsats, annars . false
Gäller för
TryParse(ReadOnlySpan<Char>, Single)
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
Konverterar strängrepresentationen av ett tal i ett teckenintervall till dess flytande punktnummer med enkel precision. Ett returvärde anger om konverteringen lyckades eller misslyckades.
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
Parametrar
- s
- ReadOnlySpan<Char>
>Ett teckenintervall som innehåller strängrepresentationen av talet som ska konverteras.
- result
- Single
När den här metoden returnerar, innehåller den flyttal med enkel precision som motsvarar parametern s , om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är null eller tom eller inte är ett tal i ett giltigt format. Om s är ett giltigt tal mindre än Single.MinValue är resultNegativeInfinity. Om s är ett giltigt tal större än Single.MaxValue är resultPositiveInfinity. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i result skrivs över.
Returer
true om s har konverterats, annars false.
Kommentarer
I .NET Core 3.0 och senare avrundas värden som är för stora för att representera till PositiveInfinity eller NegativeInfinity enligt IEEE 754-specifikationen. I tidigare versioner, inklusive .NET Framework, resulterade parsning av ett värde som var för stort för att representera ett fel.
Gäller för
TryParse(String, Single)
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
Konverterar strängrepresentationen av ett tal till dess flyttalsnummer med enkel precision. Ett returvärde anger om konverteringen lyckades eller misslyckades.
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
Parametrar
- s
- String
En sträng som representerar ett tal som ska konverteras.
- result
- Single
När den här metoden returnerar, innehåller flyttal med enkel precision som motsvarar det numeriska värdet eller symbolen i s, om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är null eller Empty inte är ett tal i ett giltigt format. Det misslyckas också i .NET Framework om s representerar ett tal som är mindre än Single.MinValue eller större än Single.MaxValue. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i result skrivs över.
Returer
true om s har konverterats, annars false.
Exempel
I följande exempel används TryParse(String, Single) metoden för att konvertera strängrepresentationer av numeriska värden till Single värden. Det förutsätter att en-US är den nuvarande kulturen.
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
Kommentarer
I .NET Core 3.0 och senare avrundas värden som är för stora för att representera till PositiveInfinity eller NegativeInfinity enligt IEEE 754-specifikationen. I tidigare versioner, inklusive .NET Framework, resulterade parsning av ett värde som var för stort för att representera ett fel.
Den här överlagringen Single.Parse(String) skiljer sig från metoden genom att returnera ett booleskt värde som anger om parsningsåtgärden lyckades i stället för att returnera det parsade numeriska värdet. Det eliminerar behovet av att använda undantagshantering för att testa för en FormatException i händelse av att s den är ogiltig och inte kan parsas.
Parametern s kan innehålla PositiveInfinitySymbol, NegativeInfinitySymboleller NaNSymbol symbol. Den här strängjämförelsen är skiftlägeskänslig i .NET Core 3.0 och senare versioner, men är skiftlägeskänslig i tidigare versioner, inklusive .NET Framework. Parametern s kan också vara en sträng i formuläret:
[ws][sign][integral-digits,]integral-digits[.[ fractional-digits]][e[sign]exponential-digits][ws]
Element inom hakparenteser är valfria. I följande tabell beskrivs varje element.
| Element | Description |
|---|---|
| Ws | En serie blankstegstecken. |
| signera | Ett negativt tecken eller ett positivt tecken. |
| integral-digits | En serie numeriska tecken från 0 till 9 som anger den integrerade delen av talet. Integral-digits kan saknas om det finns bråktalssiffror. |
| , | En kulturspecifik gruppavgränsare. |
| . | Ett kulturspecifikt decimaltecken. |
| fractional-digits | En serie numeriska tecken från 0 till 9 som anger bråkdelen av talet. |
| E | Ett versaler eller gemener som anger exponentiell (vetenskaplig) notation. |
| exponentiella siffror | En serie numeriska tecken från 0 till 9 som anger en exponent. |
Parametern s tolkas med hjälp av en kombination av flaggorna NumberStyles.Float och NumberStyles.AllowThousands . Det innebär att blanksteg och tusentalsavgränsare tillåts, men inte valutasymboler. Om du uttryckligen vill definiera de element (till exempel valutasymboler, tusentalsavgränsare och blanksteg) som kan finnas i sanvänder du TryParse(String, NumberStyles, IFormatProvider, Single) metodens överbelastning.
Parametern s parsas med formateringsinformationen i ett NumberFormatInfo objekt som initieras för den aktuella systemkulturen. Mer information finns i NumberFormatInfo.CurrentInfo. Om du vill parsa en sträng med formateringsinformationen för någon annan angiven kultur använder du TryParse(String, NumberStyles, IFormatProvider, Single) metodens överlagring.
Normalt returneras det ursprungliga Single.TryParse värdet om du skickar Single.ToString metoden en sträng som skapas genom att anropa Single metoden. Men på grund av en förlust av precision kanske värdena inte är lika med.
Om s ligger inom intervallet för datatypen Single returnerar metoden false på .NET Framework. I .NET Core 3.0 och senare versioner returneras Single.NegativeInfinity om s är mindre än Single.MinValue och Single.PositiveInfinity om s är större än Single.MaxValue.
Om en avgränsare påträffas i parametern s under en parsningsåtgärd och tillämpliga decimaler för valuta eller tal och gruppavgränsare är desamma, förutsätter parsningsåtgärden att avgränsaren är en decimalavgränsare i stället för en gruppavgränsare. Mer information om avgränsare finns i CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatoroch NumberGroupSeparator.
Se även
Gäller för
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Single)
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
Försöker parsa ett intervall med UTF-8 tecken till ett värde.
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
Parametrar
- utf8Text
- ReadOnlySpan<Byte>
Intervallet för UTF-8 tecken att parsa.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om utf8Text.
- result
- Single
Vid retur innehåller resultatet av parsning utf8Text eller ett odefinierat värde vid fel.
Returer
trueom utf8Text har parsats, annars . false
Gäller för
TryParse(ReadOnlySpan<Char>, IFormatProvider, Single)
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
Försöker parsa ett teckenintervall till ett värde.
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
Parametrar
- s
- ReadOnlySpan<Char>
Det intervall med tecken som ska parsas.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.
- result
- Single
När den här metoden returneras innehåller resultatet av parsning seller ett odefinierat värde vid fel.
Returer
trueom s har parsats, annars . false
Gäller för
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Single)
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
Försöker parsa ett intervall med UTF-8 tecken till ett värde.
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
Parametrar
- utf8Text
- ReadOnlySpan<Byte>
Intervallet för UTF-8 tecken att parsa.
- style
- NumberStyles
En bitvis kombination av talformat som kan finnas i utf8Text.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om utf8Text.
- result
- Single
Vid retur innehåller resultatet av parsning utf8Text eller ett odefinierat värde vid fel.
Returer
trueom utf8Text har parsats, annars . false
Gäller för
TryParse(ReadOnlySpan<Byte>, Single)
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
Försöker konvertera ett UTF-8-teckensintervall som innehåller strängrepresentationen av ett tal till dess flytande punktnummer med enkel precision.
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
Parametrar
- utf8Text
- ReadOnlySpan<Byte>
Ett skrivskyddat UTF-8-teckenintervall som innehåller talet som ska konverteras.
- result
- Single
När den här metoden returnerar, innehåller ett flyttal med en precision motsvarande det numeriska värdet eller symbolen i utf8Text om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen utf8Text misslyckas om är Empty eller inte är i ett giltigt format. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i resultatet skrivs över.
Returer
true om utf8Text har konverterats, annars false.
Gäller för
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Single)
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
Konverterar spännviddsrepresentationen av ett tal i ett angivet format och kulturspecifikt format till dess flytande punktnummer med enkel precision. Ett returvärde anger om konverteringen lyckades eller misslyckades.
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
Parametrar
- s
- ReadOnlySpan<Char>
Ett skrivskyddat teckenintervall som innehåller talet som ska konverteras. Intervallet tolkas med det format som anges av style.
- style
- NumberStyles
En bitvis kombination av uppräkningsvärden som anger det tillåtna formatet för s. Ett typiskt värde att ange kombineras Float med AllowThousands.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.
- result
- Single
När den här metoden returnerar innehåller det flyttal med enkel precision som motsvarar det numeriska värdet eller symbolen i s, om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är null eller Empty, inte är i ett format som är kompatibelt med style, representerar ett tal som är mindre än Single.MinValue eller större än Single.MaxValue, eller om style det inte är en giltig kombination av NumberStyles uppräknade konstanter. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i result skrivs över.
Returer
true om s har konverterats, annars false.
Kommentarer
I .NET Core 3.0 och senare avrundas värden som är för stora för att representera till PositiveInfinity eller NegativeInfinity enligt IEEE 754-specifikationen. I tidigare versioner, inklusive .NET Framework, resulterade parsning av ett värde som var för stort för att representera ett fel.
Gäller för
TryParse(String, NumberStyles, IFormatProvider, Single)
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
- Källa:
- Single.cs
Konverterar strängrepresentationen av ett tal i ett angivet format och kulturspecifikt format till dess flytande punktnummer med enkel precision. Ett returvärde anger om konverteringen lyckades eller misslyckades.
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
Parametrar
- s
- String
En sträng som representerar ett tal som ska konverteras.
- style
- NumberStyles
En bitvis kombination av uppräkningsvärden som anger det tillåtna formatet för s. Ett typiskt värde att ange kombineras Float med AllowThousands.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.
- result
- Single
När den här metoden returnerar innehåller det flyttal med enkel precision som motsvarar det numeriska värdet eller symbolen i s, om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är null eller Empty, inte är i ett format som är kompatibelt med style, eller om style inte är en giltig kombination av NumberStyles uppräkningskonstanter. Det misslyckas också i .NET Framework om s representerar ett tal som är mindre än Single.MinValue eller större än Single.MaxValue. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i result skrivs över.
Returer
true om s har konverterats, annars false.
Undantag
Exempel
I följande exempel visas hur metoden används Single.TryParse(String, NumberStyles, IFormatProvider, Single) för att parsa strängrepresentationen av tal som har ett visst format och formateras med hjälp av konventionerna i en viss kultur.
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'.
Kommentarer
I .NET Core 3.0 och senare avrundas värden som är för stora för att representera till PositiveInfinity eller NegativeInfinity enligt IEEE 754-specifikationen. I tidigare versioner, inklusive .NET Framework, resulterade parsning av ett värde som var för stort för att representera ett fel.
Den här överlagringen Parse(String, NumberStyles, IFormatProvider) skiljer sig från metoden genom att returnera ett booleskt värde som anger om parsningsåtgärden lyckades i stället för att returnera det parsade numeriska värdet. Det eliminerar behovet av att använda undantagshantering för att testa för en FormatException i händelse av att s den är ogiltig och inte kan parsas.
Parametern style definierar det tillåtna formatet för parametern s för att parsningsåtgärden ska lyckas. Det måste vara en kombination av bitflaggor från NumberStyles uppräkningen. Följande NumberStyles medlemmar stöds inte:
Parametern s kan innehålla PositiveInfinitySymbol, NegativeInfinitySymboleller NaNSymbol symbol för den kultur som anges av provider. Den här strängjämförelsen är skiftlägeskänslig i .NET Core 3.0 och senare versioner, men är skiftlägeskänslig i tidigare versioner, inklusive .NET Framework. Beroende på värdet styleför kan parametern s dessutom innehålla följande element:
[ws] [$] [sign][integral-digits,]integral-digits[.fractional-digits][e[sign]exponential-digits][ws]
Element inom hakparenteser ([ och ]) är valfria. I följande tabell beskrivs varje element.
| Element | Description |
|---|---|
| Ws | Valfritt blanksteg. Tomt utrymme kan visas i början av s om style innehåller NumberStyles.AllowLeadingWhite flaggan. Den kan visas i slutet av s om style den NumberStyles.AllowTrailingWhite innehåller flaggan. |
| $ | En kulturspecifik valutasymbol. Dess position i strängen definieras av NumberFormatInfo.CurrencyNegativePattern egenskaperna eller NumberFormatInfo.CurrencyPositivePattern för objektet som NumberFormatInfo returneras av IFormatProvider.GetFormat parametermetoden provider . Valutasymbolen kan visas i s om style den NumberStyles.AllowCurrencySymbol innehåller flaggan. |
| signera | Ett valfritt tecken. Tecknet kan visas i början av s om style innehåller NumberStyles.AllowLeadingSign flaggan, och det kan visas i slutet av s om style innehåller NumberStyles.AllowTrailingSign flaggan. Parenteser kan användas i s för att ange ett negativt värde om style den NumberStyles.AllowParentheses innehåller flaggan. |
| integral-digits | En serie siffror från 0 till 9 som anger den integrerade delen av talet. Integral-digits kan saknas om det finns bråktalssiffror. |
| , | En kulturspecifik tusentalsavgränsare. Den aktuella kulturens tusentalsavgränsarsymbol kan visas i s om style den NumberStyles.AllowThousands innehåller flaggan. |
| . | Ett kulturspecifikt decimaltecken. Den aktuella kulturens decimaltecken kan visas i s om style den NumberStyles.AllowDecimalPoint innehåller flaggan. |
| fractional-digits | En serie siffror från 0 till 9 som anger bråkdelen av talet. Bråksiffror kan visas i s om style den NumberStyles.AllowDecimalPoint innehåller flaggan. |
| e | Tecknet e eller E, som anger att s det kan representera ett tal med exponentiell notation. Parametern s kan representera ett tal i exponentiell notation om formatet innehåller NumberStyles.AllowExponent flaggan. |
| exponentiella siffror | En serie siffror från 0 till 9 som anger en exponent. |
Note
Alla avslutande NUL-tecken (U+0000) i s ignoreras av parsningsåtgärden, oavsett argumentets style värde.
En sträng med endast siffror (vilket motsvarar NumberStyles.None formatet) parsar alltid korrekt om den är i typintervallet Single . De återstående System.Globalization.NumberStyles medlemmarna styr element som kan vara men inte måste finnas i indatasträngen. I följande tabell visas hur enskilda NumberStyles flaggor påverkar de element som kan finnas i s.
| NumberStyles-värde | Element som tillåts i s utöver siffror |
|---|---|
| None | Elementet integral-digits . |
| AllowDecimalPoint | Elementen . och fractional-digits . |
| AllowExponent | Parametern s kan också använda exponentiell notation. Den här flaggan stöder i sig värden i formatet integral-digitsEexponential-digits; ytterligare flaggor behövs för att parsa strängar i exponentiell notation med element som positiva eller negativa tecken och decimaltecken. |
| AllowLeadingWhite |
WS-elementet i början av s. |
| AllowTrailingWhite |
WS-elementet i slutet av s. |
| AllowLeadingSign |
Teckenelementet i början av s. |
| AllowTrailingSign |
Teckenelementet i slutet av s. |
| AllowParentheses | Teckenelementet i form av parenteser som omger det numeriska värdet. |
| AllowThousands | Elementet , . |
| AllowCurrencySymbol | Elementet $ . |
| Currency | Alla. Parametern s kan inte representera ett hexadecimalt tal eller ett tal i exponentiell notation. |
| Float |
WS-elementet i början eller slutet av s, signera i början av soch . Parametern s kan också använda exponentiell notation. |
| Number | Elementen ws, sign, tusentalsavgränsare (,) och decimaltecken (.). |
| Any | Alla format, förutom s kan inte representera ett hexadecimalt tal. |
Parametern provider är en IFormatProvider implementering vars GetFormat metod returnerar ett NumberFormatInfo objekt som tillhandahåller kulturspecifik formateringsinformation.
TryParse(String, NumberStyles, IFormatProvider, Single) När metoden anropas anropas provider parameterns GetFormat metod och skickar den ett Type objekt som representerar NumberFormatInfo typen. Metoden GetFormat returnerar sedan objektet NumberFormatInfo som innehåller information om parameterns s format. Det finns tre sätt att använda parametern provider för att ange anpassad formateringsinformation till parsningsåtgärden:
Du kan skicka ett CultureInfo objekt som representerar kulturen som tillhandahåller formateringsinformation. Dess GetFormat metod returnerar det NumberFormatInfo objekt som innehåller numerisk formateringsinformation för den kulturen.
Du kan skicka det faktiska NumberFormatInfo objektet som innehåller numerisk formateringsinformation. (Dess implementering av GetFormat just returnerar sig själv.)
Du kan skicka ett anpassat objekt som implementerar IFormatProvider. Metoden GetFormat instansierar och returnerar objektet NumberFormatInfo som tillhandahåller formateringsinformation.
Om provider är nulltolkas formateringen för s baserat på objektet i NumberFormatInfo den aktuella kulturen.
Om s ligger inom intervallet för datatypen Single genererar metoden en OverflowException på .NET Framework. I .NET Core 3.0 och senare versioner returneras Single.NegativeInfinity om s är mindre än Single.MinValue och Single.PositiveInfinity om s är större än Single.MaxValue.
Om en avgränsare påträffas i parametern s under en parsningsåtgärd och tillämpliga decimaler för valuta eller tal och gruppavgränsare är desamma, förutsätter parsningsåtgärden att avgränsaren är en decimalavgränsare i stället för en gruppavgränsare. Mer information om avgränsare finns i CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatoroch NumberGroupSeparator.