Aracılığıyla paylaş


Single.TryParse Yöntem

Tanım

Bir sayının dize gösterimini tek duyarlıklı kayan noktalı sayı eşdeğerine dönüştürür. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir.

Aşırı Yüklemeler

Name Description
TryParse(String, IFormatProvider, Single)

Bir dizeyi bir değere ayrıştırmaya çalışır.

TryParse(ReadOnlySpan<Char>, Single)

Karakter aralığındaki bir sayının dize gösterimini tek duyarlıklı kayan noktalı sayı eşdeğerine dönüştürür. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir.

TryParse(String, Single)

Bir sayının dize gösterimini tek duyarlıklı kayan noktalı sayı eşdeğerine dönüştürür. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Single)

UTF-8 karakterlik bir aralığı bir değere ayrıştırmaya çalışır.

TryParse(ReadOnlySpan<Char>, IFormatProvider, Single)

Bir karakter aralığını bir değere ayrıştırmaya çalışır.

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

UTF-8 karakterlik bir aralığı bir değere ayrıştırmaya çalışır.

TryParse(ReadOnlySpan<Byte>, Single)

Bir sayının dize gösterimini içeren UTF-8 karakter aralığını tek duyarlıklı kayan noktalı sayı eşdeğerine dönüştürmeye çalışır.

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

Belirli bir stilde ve kültüre özgü biçimdeki bir sayının span gösterimini tek duyarlıklı kayan noktalı sayı eşdeğerine dönüştürür. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir.

TryParse(String, NumberStyles, IFormatProvider, Single)

Belirli bir stilde ve kültüre özgü biçimdeki bir sayının dize gösterimini tek duyarlıklı kayan noktalı sayı eşdeğerine dönüştürür. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir.

Açıklamalar

.NET Core 3.0 ve sonraki sürümlerinde, temsil etmek için çok büyük olan değerler IEEE 754 belirtiminin gerektirdiği şekilde veya PositiveInfinity değerine yuvarlanirNegativeInfinity. .NET Framework de dahil olmak üzere önceki sürümlerde, temsil etmek için çok büyük olan bir değeri ayrıştırmak hatayla sonuçlandı.

TryParse(String, IFormatProvider, Single)

Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs

Bir dizeyi bir değere ayrıştırmaya çalışır.

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

Parametreler

s
String

Ayrıştırmak için dize.

provider
IFormatProvider

hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

result
Single

Bu yöntem döndürdüğünde, başarıyla ayrıştırma s işleminin sonucunu veya hatada tanımlanmamış bir değeri içerir.

Döndürülenler

true başarıyla ayrıştırıldıysa s ; değilse, false.

Şunlara uygulanır

TryParse(ReadOnlySpan<Char>, Single)

Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs

Karakter aralığındaki bir sayının dize gösterimini tek duyarlıklı kayan noktalı sayı eşdeğerine dönüştürür. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir.

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

Parametreler

s
ReadOnlySpan<Char>

>Dönüştürülecek sayının dize gösterimini içeren karakter aralığı.

result
Single

Bu yöntem döndürdüğünde, dönüştürme başarılı olursa parametrenin s tek duyarlıklı kayan nokta sayı eşdeğerini veya dönüştürme başarısız olursa sıfırı içerir. Parametre null geçerli biçimde bir sayı değilse veya boşsa s dönüştürme başarısız olur. Single.MinValue değerinden küçük geçerli bir sayıysas, result olurNegativeInfinity. Single.MaxValue değerinden büyük geçerli bir sayıysas, result olurPositiveInfinity. Bu parametre başlatılmamış olarak geçirilir; başlangıçta verilen result tüm değerlerin üzerine yazılır.

Döndürülenler

true başarıyla dönüştürüldüyse s ; aksi takdirde , false.

Açıklamalar

.NET Core 3.0 ve sonraki sürümlerinde, temsil etmek için çok büyük olan değerler IEEE 754 belirtiminin gerektirdiği şekilde veya PositiveInfinity değerine yuvarlanirNegativeInfinity. .NET Framework de dahil olmak üzere önceki sürümlerde, temsil etmek için çok büyük olan bir değeri ayrıştırmak hatayla sonuçlandı.

Şunlara uygulanır

TryParse(String, Single)

Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs

Bir sayının dize gösterimini tek duyarlıklı kayan noktalı sayı eşdeğerine dönüştürür. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir.

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

Parametreler

s
String

Dönüştürülecek sayıyı temsil eden dize.

result
Single

Bu yöntem döndürdüğünde, içinde yer salan sayısal değere veya simgeye eşdeğer tek duyarlıklı kayan noktalı sayı, dönüştürme başarılı olursa sıfır veya dönüştürme başarısız olursa sıfır içerir. Parametre null geçerli biçimde bir sayıysa s veya Empty değilse dönüştürme başarısız olur. Single.MinValue değerinden küçük veya Single.MaxValue değerinden büyük bir sayıyı temsil eden s .NET Framework'te de başarısız olur. Bu parametre başlatılmamış olarak geçirilir; başlangıçta verilen result tüm değerlerin üzerine yazılır.

Döndürülenler

true başarıyla dönüştürüldüyse s ; aksi takdirde , false.

Örnekler

Aşağıdaki örnek, sayısal değerlerin TryParse(String, Single) dize gösterimlerini değerlere dönüştürmek için Single yöntemini kullanır. en-US geçerli kültür olduğunu varsayar.

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

Açıklamalar

.NET Core 3.0 ve sonraki sürümlerinde, temsil etmek için çok büyük olan değerler IEEE 754 belirtiminin gerektirdiği şekilde veya PositiveInfinity değerine yuvarlanirNegativeInfinity. .NET Framework de dahil olmak üzere önceki sürümlerde, temsil etmek için çok büyük olan bir değeri ayrıştırmak hatayla sonuçlandı.

Bu aşırı yükleme, ayrıştırılmış sayısal değeri döndürmek yerine ayrıştırma işleminin başarılı olup olmadığını gösteren bir Boole değeri döndürerek yönteminden Single.Parse(String) farklıdır. Geçersiz olan ve başarıyla ayrıştırılamayan bir durumunda FormatException test etmek için s özel durum işleme kullanma gereksinimini ortadan kaldırır.

s parametresi , NegativeInfinitySymbolveya NaNSymbol simgesi içerebilirPositiveInfinitySymbol. Bu dize karşılaştırması .NET Core 3.0 ve sonraki sürümlerde büyük/küçük harfe duyarlı değildir, ancak .NET Framework dahil önceki sürümlerde büyük/küçük harfe duyarlıdır. s Parametresi, formun bir dizesi de olabilir:

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

Köşeli ayraç içindeki öğeler isteğe bağlıdır. Aşağıdaki tabloda her öğe açıklanmaktadır.

Öğe Açıklama
Ws Bir dizi boşluk karakteri.
imza Negatif işaret veya pozitif işaret simgesi.
integral-digits Sayının tamsayı kısmını belirten 0 ile 9 arasında bir dizi sayısal karakter. Kesirli basamaklar varsa tam sayı-basamaklar eksik olabilir.
, Kültüre özgü grup ayırıcı simgesi.
. Kültüre özgü ondalık nokta simgesi.
kesirli basamaklar Sayının kesirli kısmını belirten 0 ile 9 arasında bir dizi sayısal karakter.
E Üstel (bilimsel) gösterimi gösteren büyük veya küçük harfli 'e' karakteri.
üstel basamaklar Üs belirten 0 ile 9 arasında bir dizi sayısal karakter.

s parametresi ve NumberStyles.Float bayraklarının NumberStyles.AllowThousands bir bileşimi kullanılarak yorumlanır. Başka bir deyişle boşluk ve binlik ayırıcılara izin verilir, ancak para birimi simgeleri kullanılamaz. içinde sbulunabilecek öğeleri (para birimi simgeleri, binlik ayırıcılar ve boşluk gibi) açıkça tanımlamak için yöntemi aşırı yüklemesini TryParse(String, NumberStyles, IFormatProvider, Single) kullanın.

s parametresi, geçerli sistem kültürü için başlatılan bir NumberFormatInfo nesnedeki biçimlendirme bilgileri kullanılarak ayrıştırılır. Daha fazla bilgi için bkz. NumberFormatInfo.CurrentInfo. Belirtilen başka bir kültürün biçimlendirme bilgilerini kullanarak bir dizeyi ayrıştırmak için yöntem aşırı yüklemesini TryParse(String, NumberStyles, IFormatProvider, Single) kullanın.

Normalde yöntemini çağırarak Single.TryParse oluşturulan bir dize geçirirseniz Single.ToString özgün Single değer döndürülür. Ancak, duyarlık kaybı nedeniyle değerler eşit olmayabilir.

Veri türünün aralığının dışındaysas, yöntemi .NET Framework'te döndürürfalse.Single .NET Core 3.0 ve sonraki sürümlerinde, değerinden küçükse Single.NegativeInfinity ve s değerinden Single.MinValuebüyükse Single.PositiveInfinity döndürürs.Single.MaxValue

Ayrıştırma işlemi sırasında parametrede s bir ayırıcıyla karşılaşılırsa ve geçerli para birimi veya sayı ondalık ve grup ayırıcıları aynıysa, ayrıştırma işlemi ayırıcının grup ayırıcısı yerine ondalık ayırıcısı olduğunu varsayar. Ayırıcılar hakkında daha fazla bilgi için bkz. CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatorve NumberGroupSeparator.

Ayrıca bkz.

Şunlara uygulanır

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Single)

Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs

UTF-8 karakterlik bir aralığı bir değere ayrıştırmaya çalışır.

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

Parametreler

utf8Text
ReadOnlySpan<Byte>

Ayrıştırılacak UTF-8 karakter aralığı.

provider
IFormatProvider

hakkında utf8Textkültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

result
Single

Sonuç olarak, başarıyla ayrıştırma utf8Text işleminin sonucunu veya hatada tanımlanmamış bir değeri içerir.

Döndürülenler

true başarıyla ayrıştırıldıysa utf8Text ; değilse, false.

Şunlara uygulanır

TryParse(ReadOnlySpan<Char>, IFormatProvider, Single)

Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs

Bir karakter aralığını bir değere ayrıştırmaya çalışır.

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

Parametreler

s
ReadOnlySpan<Char>

Ayrıştırılacak karakterlerin yayılma alanı.

provider
IFormatProvider

hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

result
Single

Bu yöntem döndürdüğünde, başarıyla ayrıştırma sişleminin sonucunu veya hatada tanımlanmamış bir değeri içerir.

Döndürülenler

true başarıyla ayrıştırıldıysa s ; değilse, false.

Şunlara uygulanır

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

Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs

UTF-8 karakterlik bir aralığı bir değere ayrıştırmaya çalışır.

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

Parametreler

utf8Text
ReadOnlySpan<Byte>

Ayrıştırılacak UTF-8 karakter aralığı.

style
NumberStyles

içinde utf8Textbulunabilecek sayı stillerinin bit düzeyinde birleşimi.

provider
IFormatProvider

hakkında utf8Textkültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

result
Single

Sonuç olarak, başarıyla ayrıştırma utf8Text işleminin sonucunu veya hatada tanımlanmamış bir değeri içerir.

Döndürülenler

true başarıyla ayrıştırıldıysa utf8Text ; değilse, false.

Şunlara uygulanır

TryParse(ReadOnlySpan<Byte>, Single)

Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs

Bir sayının dize gösterimini içeren UTF-8 karakter aralığını tek duyarlıklı kayan noktalı sayı eşdeğerine dönüştürmeye çalışır.

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

Parametreler

utf8Text
ReadOnlySpan<Byte>

Dönüştürülecek sayıyı içeren salt okunur UTF-8 karakter aralığı.

result
Single

Bu yöntem döndürdüğünde, dönüştürme başarılı olursa sayısal değerin veya simgenin utf8Text eşdeğeri olan tek duyarlıklı kayan noktalı sayı veya dönüştürme başarısız olursa sıfır içerir. veya geçerli bir biçimde değilse utf8TextEmpty dönüştürme başarısız olur. Bu parametre başlatılmamış olarak geçirilir; başlangıçta sonuçta sağlanan tüm değerlerin üzerine yazılır.

Döndürülenler

true başarıyla dönüştürüldüyse utf8Text ; aksi takdirde , false.

Şunlara uygulanır

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

Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs

Belirli bir stilde ve kültüre özgü biçimdeki bir sayının span gösterimini tek duyarlıklı kayan noktalı sayı eşdeğerine dönüştürür. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir.

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

Parametreler

s
ReadOnlySpan<Char>

Dönüştürülecek sayıyı içeren salt okunur karakter aralığı. Span, tarafından stylebelirtilen stil kullanılarak yorumlanır.

style
NumberStyles

İzin verilen biçimini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi s. Belirtilmesi Float gereken tipik bir değer ile AllowThousandsbirleştirilir.

provider
IFormatProvider

hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

result
Single

Bu yöntem döndürdüğünde, içinde yer alan sayısal değere veya simgeye seşdeğer tek duyarlıklı kayan nokta numarasını, dönüştürme başarılı olursa sıfırı veya dönüştürme başarısız olursa sıfırı içerir. parametresi null veya ile uyumlu stylebir biçimde değilses, Emptydönüştürme başarısız olur, Single.MinValue değerinden küçük veya Single.MaxValue değerinden NumberStyles büyük bir sayıyı temsil eder veya numaralandırılmış sabitlerin geçerli bir bileşimi değilsestyle. Bu parametre başlatılmamış olarak geçirilir; başlangıçta verilen result tüm değerlerin üzerine yazılır.

Döndürülenler

true başarıyla dönüştürüldüyse s ; aksi takdirde , false.

Açıklamalar

.NET Core 3.0 ve sonraki sürümlerinde, temsil etmek için çok büyük olan değerler IEEE 754 belirtiminin gerektirdiği şekilde veya PositiveInfinity değerine yuvarlanirNegativeInfinity. .NET Framework de dahil olmak üzere önceki sürümlerde, temsil etmek için çok büyük olan bir değeri ayrıştırmak hatayla sonuçlandı.

Şunlara uygulanır

TryParse(String, NumberStyles, IFormatProvider, Single)

Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs
Kaynak:
Single.cs

Belirli bir stilde ve kültüre özgü biçimdeki bir sayının dize gösterimini tek duyarlıklı kayan noktalı sayı eşdeğerine dönüştürür. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir.

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

Parametreler

s
String

Dönüştürülecek sayıyı temsil eden dize.

style
NumberStyles

İzin verilen biçimini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi s. Belirtilmesi Float gereken tipik bir değer ile AllowThousandsbirleştirilir.

provider
IFormatProvider

hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

result
Single

Bu yöntem döndürdüğünde, içinde yer alan sayısal değere veya simgeye seşdeğer tek duyarlıklı kayan nokta numarasını, dönüştürme başarılı olursa sıfırı veya dönüştürme başarısız olursa sıfırı içerir. parametre veya ises, ile uyumlu stylebir biçimde değilse veya sabit listesi sabitlerinin NumberStyles geçerli bir bileşimi değilse style dönüştürme başarısız Emptyolur.null Single.MinValue değerinden küçük veya Single.MaxValue değerinden büyük bir sayıyı temsil eden s .NET Framework'te de başarısız olur. Bu parametre başlatılmamış olarak geçirilir; başlangıçta verilen result tüm değerlerin üzerine yazılır.

Döndürülenler

true başarıyla dönüştürüldüyse s ; aksi takdirde , false.

Özel durumlar

style bir NumberStyles değer değildir.

-veya-

style AllowHexSpecifier değeridir.

Örnekler

Aşağıdaki örnek, belirli bir stile sahip olan ve belirli bir kültürün kuralları kullanılarak biçimlendirilmiş sayıların dize gösterimini ayrıştırmak için yönteminin kullanımını Single.TryParse(String, NumberStyles, IFormatProvider, Single) gösterir.

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'.

Açıklamalar

.NET Core 3.0 ve sonraki sürümlerinde, temsil etmek için çok büyük olan değerler IEEE 754 belirtiminin gerektirdiği şekilde veya PositiveInfinity değerine yuvarlanirNegativeInfinity. .NET Framework de dahil olmak üzere önceki sürümlerde, temsil etmek için çok büyük olan bir değeri ayrıştırmak hatayla sonuçlandı.

Bu aşırı yükleme, ayrıştırılmış sayısal değeri döndürmek yerine ayrıştırma işleminin başarılı olup olmadığını gösteren bir Boole değeri döndürerek yönteminden Parse(String, NumberStyles, IFormatProvider) farklıdır. Geçersiz olan ve başarıyla ayrıştırılamayan bir durumunda FormatException test etmek için s özel durum işleme kullanma gereksinimini ortadan kaldırır.

parametresi, style ayrıştırma işleminin s başarılı olması için parametrenin izin verilebilen biçimini tanımlar. Numaralandırmadaki NumberStyles bit bayraklarının bir bileşimi olmalıdır. Aşağıdaki NumberStyles üyeler desteklenmez:

s parametresi tarafından belirtilen providerkültür için , NegativeInfinitySymbolveya NaNSymbol simgesi içerebilirPositiveInfinitySymbol. Bu dize karşılaştırması .NET Core 3.0 ve sonraki sürümlerde büyük/küçük harfe duyarlı değildir, ancak .NET Framework dahil önceki sürümlerde büyük/küçük harfe duyarlıdır. Ayrıca, değerine styles bağlı olarak parametresi aşağıdaki öğeleri içerebilir:

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

Köşeli ayraç ([ ve ]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tabloda her öğe açıklanmaktadır.

Öğe Açıklama
Ws İsteğe bağlı boşluk. Bayrağı içeriyorsaNumberStyles.AllowLeadingWhite, başında boşluk görüntülenebilir.sstyle bayrağını içeriyorsa NumberStyles.AllowTrailingWhite sonunda sstyle görüntülenebilir.
$ Kültüre özgü para birimi simgesi. Dizedeki konumu, parametresinin NumberFormatInfo.CurrencyNegativePattern yöntemi provider tarafından döndürülen nesnenin IFormatProvider.GetFormat veya NumberFormatInfo.CurrencyPositivePattern özellikleri NumberFormatInfo tarafından tanımlanır. Bayrağı içeriyorsa s para birimi simgesi içinde styleNumberStyles.AllowCurrencySymbol görüntülenebilir.
imza İsteğe bağlı bir işaret. İşaret, bayrağın eklenip eklenmediğinin başında ve bayrağın eklenip eklenmediğinin sstyleNumberStyles.AllowLeadingSign sonunda görünebilir.sstyleNumberStyles.AllowTrailingSign Parantezler, bayrağı içeriyorsa s negatif bir değeri style belirtmek için içinde kullanılabilirNumberStyles.AllowParentheses.
integral-digits Sayının tamsayı kısmını belirten 0 ile 9 arasında bir basamak dizisi. Kesirli basamaklar varsa tam sayı-basamaklar eksik olabilir.
, Kültüre özgü binlik ayırıcı simgesi. Bayrağı içeriyorsa geçerli kültürün s binlik ayırıcı simgesi içinde görüntülenebilir.styleNumberStyles.AllowThousands
. Kültüre özgü ondalık nokta simgesi. Bayrağı içeriyorsa geçerli kültürün s ondalık noktası simgesi içinde styleNumberStyles.AllowDecimalPoint görüntülenebilir.
kesirli basamaklar Sayının kesirli kısmını belirten 0 ile 9 arasında bir basamak dizisi. Bayrağı içeriyorsa s kesirli basamaklar içinde styleNumberStyles.AllowDecimalPoint görüntülenebilir.
e Üstel gösterim kullanarak bir sayıyı temsil ettiğini gösteren s e veya E karakteri. stil s bayrağı içeriyorsa parametresi üstel gösterimde bir sayıyı NumberStyles.AllowExponent temsil edebilir.
üstel basamaklar Üs belirten 0 ile 9 arasında bir basamak dizisi.

Not

içindeki s sonlandırıcı NUL (U+0000) karakterleri, bağımsız değişkenin değerinden style bağımsız olarak ayrıştırma işlemi tarafından yoksayılır.

Yalnızca basamak içeren bir dize (stile NumberStyles.None karşılık gelir) türün aralığındaysa Single her zaman başarıyla ayrıştırılır. Kalan System.Globalization.NumberStyles üyeler, giriş dizesinde mevcut olması gerekmeyen öğeleri denetler. Aşağıdaki tablo, tek tek NumberStyles bayrakların içinde sbulunabilecek öğeleri nasıl etkilediğini gösterir.

NumberStyles değeri Basamaklara ek olarak s içinde izin verilen öğeler
None Yalnızca integral-digits öğesi.
AllowDecimalPoint . ve kesirli basamaklar öğeleri.
AllowExponent parametresi üstel s gösterim de kullanabilir. Bu bayrak tek başına integral-digitsEüstel basamaklar biçimindeki değerleri destekler; artı veya negatif işaretler ve ondalık nokta simgeleri gibi öğelerle üstel gösterimde dizeleri başarıyla ayrıştırmak için ek bayraklar gerekir.
AllowLeadingWhite başındaki s öğesi.
AllowTrailingWhite sonundaki s öğesi.
AllowLeadingSign başındaki s öğesi.
AllowTrailingSign sonundaki s öğesi.
AllowParentheses Sayısal değeri kapsayan parantez biçimindeki sign öğesi.
AllowThousands öğesi.
AllowCurrencySymbol $ öğesi.
Currency Tüm. s parametresi onaltılık bir sayıyı veya üstel gösterimdeki bir sayıyı temsil edemez.
Float başındaki veya sonundaki s öğesi, öğesinin başında simzalar. parametresi üstel s gösterim de kullanabilir.
Number ws, sign, binler ayırıcısı (,) ve ondalık ayırıcı (.) öğeleri.
Any dışındaki s tüm stiller onaltılık bir sayıyı temsil edemez.

provider parametresi, yöntemi kültüre özgü biçimlendirme bilgileri sağlayan bir nesne döndüren bir IFormatProviderGetFormat uygulamadırNumberFormatInfo. TryParse(String, NumberStyles, IFormatProvider, Single) yöntemi çağrıldığında, parametresinin providerGetFormat yöntemini çağırır ve türü temsil Type eden bir NumberFormatInfo nesne geçirir. Yöntemi GetFormat daha sonra parametresinin NumberFormatInfo biçimi s hakkında bilgi sağlayan nesneyi döndürür. Ayrıştırma işlemine provider özel biçimlendirme bilgileri sağlamak için parametresini kullanmanın üç yolu vardır:

  • Biçimlendirme bilgileri sağlayan kültürü temsil eden bir CultureInfo nesne geçirebilirsiniz. yöntemi GetFormat , bu kültür için sayısal biçimlendirme bilgileri sağlayan nesneyi döndürür NumberFormatInfo .

  • Sayısal biçimlendirme bilgileri sağlayan gerçek NumberFormatInfo nesneyi geçirebilirsiniz. (Uygulaması GetFormat yalnızca kendisini döndürür.)

  • uygulayan IFormatProviderözel bir nesne geçirebilirsiniz. Yöntemi GetFormat , biçimlendirme bilgileri sağlayan nesnesinin örneğini NumberFormatInfo oluşturur ve döndürür.

ise providernull, biçimlendirmesi s geçerli kültürün NumberFormatInfo nesnesine göre yorumlanır.

Veri türünün aralığının Single dışındaysas, yöntemi üzerinde bir OverflowException .NET Framework oluşturur. .NET Core 3.0 ve sonraki sürümlerinde, değerinden küçükse Single.NegativeInfinity ve s değerinden Single.MinValuebüyükse Single.PositiveInfinity döndürürs.Single.MaxValue

Ayrıştırma işlemi sırasında parametrede s bir ayırıcıyla karşılaşılırsa ve geçerli para birimi veya sayı ondalık ve grup ayırıcıları aynıysa, ayrıştırma işlemi ayırıcının grup ayırıcısı yerine ondalık ayırıcısı olduğunu varsayar. Ayırıcılar hakkında daha fazla bilgi için bkz. CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatorve NumberGroupSeparator.

Ayrıca bkz.

Şunlara uygulanır