Single.TryParse Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
Ö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.