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üş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)
- 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ılması.
- provider
- IFormatProvider
hakkında s
kü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
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<Char>, Single)
- Kaynak:
- Single.cs
- Kaynak:
- Single.cs
- Kaynak:
- 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)
- 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üş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 s
alan 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 s
bulunabilecek öğ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)
- 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 utf8Text
kü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)
- 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ıracak dize.
- provider
- IFormatProvider
hakkında s
kü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)
- 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 utf8Text
bulunabilecek sayı stillerinin bit düzeyinde birleşimi.
- provider
- IFormatProvider
hakkında utf8Text
kü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)
- 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 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 utf8Text
Empty 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)
- Kaynak:
- Single.cs
- Kaynak:
- Single.cs
- Kaynak:
- 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 style
belirtilen 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 s
kü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 s
eş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 style
bir 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)
- Kaynak:
- Single.cs
- Kaynak:
- Single.cs
- Kaynak:
- 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 s
kü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 s
eş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 style
uyumlu 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 s
Empty. 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
Ö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 provider
kültür için , NegativeInfinitySymboliçerebilirNaNSymbol. Buna ek olarak, değerine style
s
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 s style NumberStyles.AllowLeadingWhite başında görüntülenebilir. bayrağını içeriyorsa NumberStyles.AllowTrailingWhite sonunda s style 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 s style görünebilir. |
sign | İsteğe bağlı bir işaret. İşaret, bayrağını içeriyorsa öğesinin s style NumberStyles.AllowLeadingSign başında ve bayrağını içeriyorsa NumberStyles.AllowTrailingSign sonunda s style 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 s
mevcut 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 s ws öğesi. |
AllowTrailingWhite | sonundaki s ws öğesi. |
AllowLeadingSign | başındaki s sign öğesi. |
AllowTrailingSign | sonundaki s sign öğ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 s ws öğesi, ve simgesinins başı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 provider
GetFormat 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 provider
null
, 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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin