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
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 PositiveInfinity veya NegativeInfinity yuvarlanır. .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
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
s
hakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne.
- result
- Single
Bu yöntem döndürdüğünde, s
başarıyla ayrıştırma veya hatada tanımlanmamış bir değerin sonucunu içerir.
Döndürülenler
s
başarıyla ayrıştırılıp ayrıştırılamadığını true
; aksi takdirde, false
.
Şunlara uygulanır
TryParse(ReadOnlySpan<Char>, Single)
- 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 bir karakter aralığı.
- result
- Single
Bu yöntem döndürdüğünde, dönüştürme başarılı olursa s
parametresinin tek duyarlıklı kayan nokta sayı eşdeğerini veya dönüştürme başarısız olursa sıfırı içerir.
s
parametresi null
veya boşsa veya geçerli biçimde bir sayı değilse dönüştürme başarısız olur.
s
Single.MinValuedeğerinden küçük geçerli bir sayıysa result
NegativeInfinity.
s
Single.MaxValuedeğerinden büyük geçerli bir sayıysa result
PositiveInfinity. Bu parametre başlatılmamış olarak geçirilir; başlangıçta result
sağlanan tüm değerlerin üzerine yazılır.
Döndürülenler
s
başarıyla dönüştürüldüyse true
; 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 PositiveInfinity veya NegativeInfinity yuvarlanır. .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
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, s
içinde yer alan sayısal değere veya simgeye eşdeğer tek duyarlıklı kayan nokta numarası, 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.
s
parametresi null
veya Empty ya da geçerli biçimde bir sayı değilse dönüştürme başarısız olur.
s
Single.MinValue veya Single.MaxValue'den büyük bir sayıyı temsil ederse.NET Framework ve .NET Core 2.2 ve önceki sürümlerde de başarısız olur. Bu parametre başlatılmamış olarak geçirilir; başlangıçta result
sağlanan tüm değerlerin üzerine yazılır.
Döndürülenler
s
başarıyla dönüştürüldüyse true
; aksi takdirde, false
.
Örnekler
Aşağıdaki örnek, sayısal değerlerin dize gösterimlerini Single değerlere dönüştürmek için TryParse(String, 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 PositiveInfinity veya NegativeInfinity yuvarlanır. .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 Single.Parse(String) yönteminden farklıdır.
s
geçersiz olması ve başarıyla ayrıştırılamaması durumunda bir FormatException test etmek için özel durum işleme kullanma gereksinimini ortadan kaldırır.
s
parametresi PositiveInfinitySymbol, NegativeInfinitySymbol, NaNSymbol (dize karşılaştırması büyük/küçük harfe duyarlıdır) veya formun dizesini içerebilir:
[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. |
imzalama | 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 basamak |
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 basamak |
Üs belirten 0 ile 9 arasında bir dizi sayısal karakter. |
s
parametresi, NumberStyles.Float ve NumberStyles.AllowThousands bayraklarının 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.
s
içinde bulunabilecek öğeleri (para birimi simgeleri, binlik ayırıcılar ve boşluk gibi) açıkça tanımlamak için TryParse(String, NumberStyles, IFormatProvider, Single) yöntemi aşırı yüklemesini kullanın.
s
parametresi, geçerli sistem kültürü için başlatılan bir NumberFormatInfo nesnesindeki 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 TryParse(String, NumberStyles, IFormatProvider, Single) yöntemi aşırı yüklemesini kullanın.
Normalde, Single.TryParse yöntemini Single.ToString yöntemi çağrılarak oluşturulan bir dize geçirirseniz özgün Single değeri döndürülür. Ancak, duyarlık kaybı nedeniyle değerler eşit olmayabilir.
s
Single veri türünün aralığının dışındaysa, yöntem .NET Framework ve .NET Core 2.2 ve önceki sürümlerde false
döndürür. .NET Core 3.0 ve sonraki sürümlerinde, s
Single.MinValue'den küçükse Single.NegativeInfinity ve s
Single.MaxValue'den büyükse Single.PositiveInfinity döndürür.
Ayrıştırma işlemi sırasında s
parametresinde bir ayırıcıyla karşılaşılırsa ve ilgili 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.
- Parse(String)
- ToString()
- .NET'da Sayısal Dizeleri Ayrıştırma
Ş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
utf8Text
hakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne.
- result
- Single
Sonuç olarak, utf8Text
başarıyla ayrıştırma veya hatada tanımlanmamış bir değerin sonucunu içerir.
Döndürülenler
utf8Text
başarıyla ayrıştırılıp ayrıştırılamadığını true
; aksi takdirde, false
.
Şunlara uygulanır
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ılma alanı.
- provider
- IFormatProvider
s
hakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne.
- result
- Single
Bu yöntem döndürdüğünde, s
başarıyla ayrıştırma işleminin sonucunu veya hatada tanımlanmamış bir değeri içerir.
Döndürülenler
s
başarıyla ayrıştırılıp ayrıştırılamadığını true
; 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
utf8Text
içinde bulunabilecek sayı stillerinin bit düzeyinde birleşimi.
- provider
- IFormatProvider
utf8Text
hakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne.
- result
- Single
Sonuç olarak, utf8Text
başarıyla ayrıştırma veya hatada tanımlanmamış bir değerin sonucunu içerir.
Döndürülenler
utf8Text
başarıyla ayrıştırılıp ayrıştırılamadığını true
; 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 sayısal değerin veya utf8Text
içinde yer alan simgenin tek duyarlıklı kayan noktalı sayı eşdeğerini veya dönüştürme başarısız olursa sıfırı içerir.
utf8Text
Empty veya geçerli bir biçimde değilse 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
utf8Text
başarıyla dönüştürüldüyse true
; aksi takdirde, false
.
Şunlara uygulanır
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Single)
- 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);
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, style
tarafından belirtilen stil kullanılarak yorumlanır.
- style
- NumberStyles
s
izin verilen biçimini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değer FloatAllowThousandsile birleştirilir.
- provider
- IFormatProvider
s
hakkında kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
- result
- Single
Bu yöntem döndürdüğünde, s
içinde yer alan sayısal değere veya simgeye eş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. result
sağlanan tüm değerlerin üzerine yazılır.
Döndürülenler
s
başarıyla dönüştürüldüyse true
; 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 PositiveInfinity veya NegativeInfinity yuvarlanır. .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
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
s
izin verilen biçimini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değer FloatAllowThousandsile birleştirilir.
- provider
- IFormatProvider
s
hakkında kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
- result
- Single
Bu yöntem döndürdüğünde, s
içinde yer alan sayısal değere veya simgeye eş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.
s
parametresi null
veya Emptyise, style
ile uyumlu bir biçimde değilse veya style
NumberStyles sabit listesi sabitlerinin geçerli bir bileşimi değilse dönüştürme başarısız olur.
s
Single.MinValue veya Single.MaxValue'den büyük bir sayıyı temsil ederse.NET Framework veya .NET Core 2.2 ve önceki sürümlerde de başarısız olur. Bu parametre başlatılmamış olarak geçirilir; başlangıçta result
sağlanan tüm değerlerin üzerine yazılır.
Döndürülenler
s
başarıyla dönüştürüldüyse true
; 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 Single.TryParse(String, NumberStyles, IFormatProvider, Single) yönteminin kullanımını 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 PositiveInfinity veya NegativeInfinity yuvarlanır. .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 Parse(String, NumberStyles, IFormatProvider) yönteminden farklıdır.
s
geçersiz olması ve başarıyla ayrıştırılamaması durumunda bir FormatException test etmek için özel durum işleme kullanma gereksinimini ortadan kaldırır.
style
parametresi, ayrıştırma işleminin başarılı olması için s
parametresinin izin verilebilen biçimini tanımlar.
NumberStyles numaralandırmasından bit bayraklarının birleşimi olmalıdır. Aşağıdaki NumberStyles üyeleri desteklenmez:
s
parametresi, provider
tarafından belirtilen kültür için PositiveInfinitySymbol, NegativeInfinitySymbolNaNSymbol içerebilir. Ayrıca, style
değerine bağlı olarak s
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.
style
NumberStyles.AllowLeadingWhite bayrağı içeriyorsa boşluk s başında görüntülenebilir.
style
NumberStyles.AllowTrailingWhite bayrağı içeriyorsa, s sonunda görüntülenebilir. |
$ | Kültüre özgü para birimi simgesi. Dizedeki konumu, provider parametresinin IFormatProvider.GetFormat yöntemi tarafından döndürülen NumberFormatInfo nesnesinin NumberFormatInfo.CurrencyNegativePattern veya NumberFormatInfo.CurrencyPositivePattern özellikleri tarafından tanımlanır. para birimi simgesi, style NumberStyles.AllowCurrencySymbol bayrağı içeriyorsa s görünebilir. |
imzalama | İsteğe bağlı bir işaret. İşaret, style NumberStyles.AllowLeadingSign bayrağı içeriyorsa s başında ve style NumberStyles.AllowTrailingSign bayrağı içeriyorsa s sonunda görüntülenebilir.
style
NumberStyles.AllowParentheses bayrağı içeriyorsa, negatif bir değeri belirtmek için s 'de parantezler kullanılabilir. |
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. geçerli kültürün binlik ayırıcı simgesi, style NumberStyles.AllowThousands bayrağı içeriyorsa s görünebilir. |
. | Kültüre özgü ondalık nokta simgesi.
style
NumberStyles.AllowDecimalPoint bayrağı içeriyorsa geçerli kültürün ondalık noktası simgesi s görünebilir. |
Kesirli basamak |
Sayının kesirli kısmını belirten 0 ile 9 arasında bir basamak dizisi.
style
NumberStyles.AllowDecimalPoint bayrağı içeriyorsa kesirli basamaklar s görünebilir. |
e | e veya E karakteri, s üstel gösterim kullanarak bir sayıyı temsil edebilir. stilde NumberStyles.AllowExponent bayrağı varsa, s parametresi bir sayıyı üstel gösterimde temsil edebilir. |
üstel basamak |
Üs belirten 0 ile 9 arasında bir basamak dizisi. |
Not
s
sonlandırıcı NUL (U+0000) karakterleri, style
bağımsız değişkeninin değerinden bağımsız olarak ayrıştırma işlemi tarafından yoksayılır.
Yalnızca basamak içeren bir dize (NumberStyles.None stiline karşılık gelir) Single türü aralığındaysa her zaman başarıyla ayrıştırılır. Kalan System.Globalization.NumberStyles üyeleri, giriş dizesinde bulunması gerekmeyen öğeleri denetler. Aşağıdaki tabloda, tek tek NumberStyles bayraklarının s
'de mevcut olabilecek öğeleri nasıl etkilediği gösterilir.
NumberStyles değeri | Basamaklara ek olarak s içinde izin verilen öğeler |
---|---|
None | Yalnızca integral-digits öğesi. |
AllowDecimalPoint | |
AllowExponent |
s parametresi üstel gösterimi de kullanabilir. Bu bayrak tek başına, E |
AllowLeadingWhite |
s başındaki ws öğesi. |
AllowTrailingWhite |
s sonundaki ws öğesi. |
AllowLeadingSign |
s başındaki sign öğesi. |
AllowTrailingSign |
s sonundaki sign öğesi. |
AllowParentheses | işareti, sayısal değeri kapsayan parantez biçiminde öğesidir. |
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 | s parametresi üstel gösterimi de kullanabilir. |
Number |
ws , sign , binler ayırıcısı (,), ve ondalık ayırıcı (.) öğeleri. |
Any |
s dışındaki tüm stiller onaltılık bir sayıyı temsil edemez. |
provider
parametresi, GetFormat yöntemi kültüre özgü biçimlendirme bilgileri sağlayan bir NumberFormatInfo nesnesi döndüren bir IFormatProvider uygulamasıdır.
TryParse(String, NumberStyles, IFormatProvider, Single) yöntemi çağrıldığında, provider
parametresinin GetFormat yöntemini çağırır ve NumberFormatInfo türünü temsil eden bir Type nesnesi geçirir.
GetFormat yöntemi daha sonra s
parametresinin biçimi hakkında bilgi sağlayan NumberFormatInfo nesnesini döndürür. Ayrıştırma işlemine özel biçimlendirme bilgileri sağlamak için provider
parametresini kullanmanın üç yolu vardır:
Biçimlendirme bilgileri sağlayan kültürü temsil eden bir CultureInfo nesnesi geçirebilirsiniz. GetFormat yöntemi, bu kültür için sayısal biçimlendirme bilgileri sağlayan NumberFormatInfo nesnesini döndürür.
Sayısal biçimlendirme bilgileri sağlayan gerçek NumberFormatInfo nesnesini geçirebilirsiniz. (GetFormat uygulaması yalnızca kendini döndürür.)
IFormatProvideruygulayan özel bir nesne geçirebilirsiniz. GetFormat yöntemi, biçimlendirme bilgileri sağlayan NumberFormatInfo nesnesini oluşturur ve döndürür.
provider
null
ise, s
biçimlendirmesi geçerli kültürün NumberFormatInfo nesnesine göre yorumlanır.
s
Single veri türünün aralığının dışındaysa, yöntem .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, s
Single.MinValue'den küçükse Single.NegativeInfinity ve s
Single.MaxValue'den büyükse Single.PositiveInfinity döndürür.
Ayrıştırma işlemi sırasında s
parametresinde bir ayırıcıyla karşılaşılırsa ve ilgili 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.
- Parse(String)
- ToString()
- .NET'da Sayısal Dizeleri Ayrıştırma