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üştürmenin başarılı veya başarısız olduğunu gösteren dönüş değeri.

Aşırı Yüklemeler

TryParse(ReadOnlySpan<Char>, IFormatProvider, Single)

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

TryParse(ReadOnlySpan<Char>, Single)

Bir 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üştürmenin başarılı veya başarısız olduğunu gösteren dönüş değeri.

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üştürmenin başarılı veya başarısız olduğunu gösteren dönüş değeri.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Single)

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

TryParse(String, IFormatProvider, Single)

Bir dizeyi 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)

Bir sayının belirtilen stildeki ve kültüre özgü biçimdeki span gösterimini tek duyarlıklı kayan noktalı sayı eşdeğerine dönüştürür. Dönüştürmenin başarılı veya başarısız olduğunu gösteren dönüş değeri.

TryParse(String, NumberStyles, IFormatProvider, Single)

Belirli bir stildeki 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üştürmenin başarılı veya başarısız olduğunu gösteren dönüş değeri.

Açıklamalar

.NET Core 3.0 ve sonraki sürümlerde, temsil edilemeyecek kadar büyük değerler, IEEE 754 belirtiminin gerektirdiği şekilde veya NegativeInfinity değerine yuvarlanrPositiveInfinity. .NET Framework dahil olmak üzere önceki sürümlerde, temsil edilemeyecek kadar büyük bir değeri ayrıştırmak hatayla sonuçlandı.

TryParse(ReadOnlySpan<Char>, IFormatProvider, Single)

Source:
Single.cs
Source:
Single.cs
Source:
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ılması.

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 ssonucunu veya hata durumunda tanımlanmamış bir değeri içerir.

Döndürülenler

true başarıyla ayrıştırıldıysa s ; aksi takdirde , false.

Şunlara uygulanır

TryParse(ReadOnlySpan<Char>, Single)

Source:
Single.cs
Source:
Single.cs
Source:
Single.cs

Bir 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üştürmenin başarılı veya başarısız olduğunu gösteren dönüş değeri.

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 tek duyarlıklı kayan s noktalı 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ılmadan 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ümlerde, temsil etmek için çok büyük olan değerler IEEE 754 belirtimine göre veya NegativeInfinity gerekli olduğu şekilde yuvarlanmaktadırPositiveInfinity. .NET Framework dahil olmak üzere önceki sürümlerde, temsil etmek için çok büyük olan bir değeri ayrıştırmak hataya neden oldu.

Şunlara uygulanır

TryParse(String, Single)

Source:
Single.cs
Source:
Single.cs
Source:
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üştürmenin başarılı veya başarısız olduğunu gösteren dönüş değeri.

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 simgesine 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 ve .NET Core 2.2 ve önceki sürümlerde de başarısız olur. Bu parametre başlatılmadan 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. Geçerli kültürün en-US 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ümlerde, temsil etmek için çok büyük olan değerler IEEE 754 belirtimine göre veya NegativeInfinity gerekli olduğu şekilde yuvarlanmaktadırPositiveInfinity. .NET Framework dahil olmak üzere önceki sürümlerde, temsil etmek için çok büyük olan bir değeri ayrıştırmak hataya neden oldu.

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ı belirten 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 s test etmek için FormatException özel durum işleme kullanma gereksinimini ortadan kaldırır.

s parametresi , , NegativeInfinitySymbolNaNSymbol (dize karşılaştırması büyük/küçük harfe duyarlıdır) veya formun dizesini içerebilirPositiveInfinitySymbol:

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

Köşeli parantezler içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.

Öğe Açıklama
Ws Boşluk karakterlerinden oluşan bir dizi.
sign Eksi işareti ve artı işareti simgesi.
tamsayı basamaklar Sayının tamsayı kısmını belirten 0 ile 9 arasında bir dizi sayısal karakter. Kesirli basamaklar varsa tamsayı basamaklar bulunmayabilir.
, Kültüre özgü bir grup ayırıcı simge.
. Bir kültüre özgü ondalık nokta sembolü.
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 Üssü belirten 0 ile 9 arasında bir dizi sayısal karakter.

s parametresi ve NumberStyles.AllowThousands bayraklarının NumberStyles.Float bir bileşimi kullanılarak yorumlanır. Bu, boşluk ve binlik ayırıcılarına izin verildiği, ancak para birimi simgelerine izin verilmediği anlamına gelir. içinde sbulunabilecek öğeleri (para birimi simgeleri, binlik ayırıcılar ve boşluk gibi) açıkça tanımlamak için yöntem 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.ToString oluşturulan bir dize geçirirseniz Single.TryParse özgün Single değer döndürülür. Ancak, duyarlılık kaybı nedeniyle, değerleri eşit olmayabilir.

Veri türünün aralığı dışındaysas, yöntem .NET Framework ve .NET Core 2.2 ve önceki sürümlerde döndürürfalse.Single .NET Core 3.0 ve sonraki sürümlerinde, değerinden küçükse s ve Single.PositiveInfinity değerinden Single.MaxValuebüyükse s döndürürSingle.NegativeInfinity.Single.MinValue

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ı 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)

Source:
Single.cs
Source:
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 hata durumunda tanımlanmamış bir değeri içerir.

Döndürülenler

true başarıyla ayrıştırıldıysa utf8Text ; aksi takdirde , false.

Şunlara uygulanır

TryParse(String, IFormatProvider, Single)

Source:
Single.cs
Source:
Single.cs
Source:
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ıracak 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 hata durumunda tanımlanmamış bir değeri içerir.

Döndürülenler

true başarıyla ayrıştırıldıysa s ; aksi takdirde , false.

Şunlara uygulanır

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

Source:
Single.cs
Source:
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 hata durumunda tanımlanmamış bir değeri içerir.

Döndürülenler

true başarıyla ayrıştırıldıysa utf8Text ; aksi takdirde , false.

Şunlara uygulanır

TryParse(ReadOnlySpan<Byte>, Single)

Source:
Single.cs
Source:
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 içinde bulunan sayısal değerin veya simgenin utf8Text tek duyarlıklı kayan noktalı sayı eşdeğerini 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ılmadan 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)

Source:
Single.cs
Source:
Single.cs
Source:
Single.cs

Bir sayının belirtilen stildeki ve kültüre özgü biçimdeki span gösterimini tek duyarlıklı kayan noktalı sayı eşdeğerine dönüştürür. Dönüştürmenin başarılı veya başarısız olduğunu gösteren dönüş değeri.

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, [Runtime::InteropServices::Out] float % result) = System::Numerics::INumberBase<float>::TryParse;
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 bulunan sayısal değere veya sembole seşdeğer tek duyarlıklı kayan noktalı sayıyı, 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 veya ile uyumlu stylebir biçimde değilses, Emptydönüştürme null başarısız olur, Single.MinValue değerinden küçük veya Single.MaxValue değerinden büyük bir sayıyı temsil eder veya numaralandırılmış sabitlerin NumberStyles geçerli bir bileşimi değilsestyle. Bu parametre başlatılmadan 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ümlerde, temsil etmek için çok büyük olan değerler IEEE 754 belirtimine göre veya NegativeInfinity gerekli olduğu şekilde yuvarlanmaktadırPositiveInfinity. .NET Framework dahil olmak üzere önceki sürümlerde, temsil etmek için çok büyük olan bir değeri ayrıştırmak hataya neden oldu.

Şunlara uygulanır

TryParse(String, NumberStyles, IFormatProvider, Single)

Source:
Single.cs
Source:
Single.cs
Source:
Single.cs

Belirtilen 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üştürmenin başarılı veya başarısız olduğunu gösteren dönüş değeri.

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 bulunan sayısal değere veya sembole seşdeğer tek duyarlıklı kayan noktalı sayıyı, 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 veya ise, ile styleuyumlu bir 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 olur sEmpty. Single.MinValue değerinden küçük veya Single.MaxValue değerinden büyük bir sayıyı temsil eden s .NET Framework veya .NET Core 2.2 ve önceki sürümlerde de başarısız olur. Bu parametre başlatılmadan 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-

styleAllowHexSpecifier 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ümlerde, temsil etmek için çok büyük olan değerler IEEE 754 belirtimine göre veya NegativeInfinity gerekli olduğu şekilde yuvarlanmaktadırPositiveInfinity. .NET Framework dahil olmak üzere önceki sürümlerde, temsil etmek için çok büyük olan bir değeri ayrıştırmak hataya neden oldu.

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ı belirten 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 s test etmek için FormatException özel durum işleme kullanma gereksinimini ortadan kaldırır.

style parametresi, 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 PositiveInfinitySymboltarafından belirtilen providerkültür için , NegativeInfinitySymboliçerebilirNaNSymbol. Buna ek olarak, 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çlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.

Öğe Açıklama
Ws İsteğe bağlı beyaz boşluk. bayrağını içeriyorsa boşluk öğesinin sstyleNumberStyles.AllowLeadingWhite başında görüntülenebilir. 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 NumberFormatInfo veya NumberFormatInfo.CurrencyPositivePattern özellikleri tarafından IFormatProvider.GetFormat tanımlanır. Bayrağı içeriyorsa NumberStyles.AllowCurrencySymbol para birimi simgesi içinde sstyle görünebilir.
sign İsteğe bağlı bir işaret. İşaret, bayrağını içeriyorsa öğesinin sstyleNumberStyles.AllowLeadingSign başında ve bayrağını içeriyorsa NumberStyles.AllowTrailingSign sonunda sstyle görüntülenebilir. Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirs.
tamsayı basamaklar Sayının tamsayı kısmını belirten 0-9 arasında bir rakam dizisi. Kesirli basamaklar varsa tamsayı basamaklar bulunmayabilir.
, Kültüre özgü binler basamaklarını ayıran simge. bayrağını style içeriyorsa geçerli kültürün NumberStyles.AllowThousands binlik ayırıcı simgesi içinde s görüntülenebilir.
. Bir kültüre özgü ondalık nokta sembolü. bayrağını style içeriyorsa geçerli kültürün NumberStyles.AllowDecimalPoint ondalık noktası simgesi içinde s görüntülenebilir.
kesirli basamaklar Sayının kesirli bölümünü belirten 0-9 arasında bir rakam dizisi. bayrağını style içeriyorsa kesirli basamaklar NumberStyles.AllowDecimalPoint içinde s görüntülenebilir.
E Üstel gösterimi kullanarak bir sayıyı temsil ettiğini gösteren s e veya E karakteri. Stil s bayrağını içeriyorsa parametresi üstel gösteriminde bir sayıyı NumberStyles.AllowExponent temsil edebilir.
üstel basamaklar Bir üssü belirten, 0-9 arasında olan rakam 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 ancak gerekli olmayan öğeleri denetler. Aşağıdaki tablo, tek tek NumberStyles bayrakların içinde smevcut olabilecek öğeleri nasıl etkilediğini gösterir.

NumberStyles değeri Basamaklara olarak s bileşeninde izin verilen öğeler
None Yalnızca integral-digits öğesi.
AllowDecimalPoint . ve kesirli basamaklar öğeleri.
AllowExponent parametresi üstel s gösterimi 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österimindeki dizeleri başarıyla ayrıştırmak için ek bayraklar gerekir.
AllowLeadingWhite başındaki sws öğesi.
AllowTrailingWhite sonundaki sws öğesi.
AllowLeadingSign başındaki ssign öğesi.
AllowTrailingSign sonundaki ssign öğesi.
AllowParentheses Sayısal değeri kapsayan parantez biçimindeki işaret öğesi.
AllowThousands , öğesi.
AllowCurrencySymbol $ öğesi.
Currency Tüm. s parametresi onaltılık bir sayıyı veya üstel gösterimi olan bir sayıyı temsil edemez.
Float başındaki veya sonundaki sws öğesi, ve simgesininsbaşında imzalar. parametresi üstel s gösterimi 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 NumberFormatInfo uygulamadır IFormatProviderGetFormat. TryParse(String, NumberStyles, IFormatProvider, Single) yöntemi çağrıldığında parametresinin providerGetFormat yöntemini çağırır ve türü temsil NumberFormatInfo eden bir Type nesne iletir. Yöntemi GetFormat daha sonra parametresinin NumberFormatInfo biçimi s hakkında bilgi sağlayan nesnesini 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. GetFormat yöntemi, NumberFormatInfo bu kültür için sayısal biçimlendirme bilgileri sağlayan nesneyi döndürür.

  • 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 bilgilerini sağlayan nesneyi oluşturur ve döndürür NumberFormatInfo .

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 .NET Framework ve .NET Core 2.2 ve önceki sürümlerde bir OverflowException oluşturur. .NET Core 3.0 ve sonraki sürümlerinde, değerinden küçükse s ve Single.PositiveInfinity değerinden Single.MaxValuebüyükse s döndürürSingle.NegativeInfinity.Single.MinValue

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