Aracılığıyla paylaş


Decimal.TryParse Yöntem

Tanım

Bir sayının dize gösterimini Decimal 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(ReadOnlySpan<Byte>, Decimal)

Bir sayının dize gösterimini içeren UTF-8 karakter aralığını imzalı ondalık eşdeğerine dönüştürmeye çalışır.

TryParse(ReadOnlySpan<Char>, Decimal)

Kültüre özgü biçimi kullanarak bir sayının span gösterimini Decimal 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, Decimal)

Bir sayının dize gösterimini Decimal 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, Decimal)

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

TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)

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

TryParse(String, IFormatProvider, Decimal)

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

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

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

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

Belirtilen stil ve kültüre özgü biçimi kullanarak bir sayının span gösterimini Decimal 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, Decimal)

Belirtilen stili ve kültüre özgü biçimi kullanarak bir sayının dize gösterimini Decimal 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>, Decimal)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

Bir sayının dize gösterimini içeren UTF-8 karakter aralığını imzalı ondalık eşdeğerine dönüştürmeye çalışır.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out decimal result);
static member TryParse : ReadOnlySpan<byte> * decimal -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As Decimal) As Boolean

Parametreler

utf8Text
ReadOnlySpan<Byte>

Dönüştürülecek sayıyı temsil eden UTF-8 karakterlerini içeren bir yayılma alanı.

result
Decimal

Bu yöntem döndürdüğünde, dönüştürme başarılı olursa utf8Text içinde bulunan sayıya eşdeğer imzalı ondalık değeri veya dönüştürme başarısız olursa sıfır içerir. 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>, Decimal)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

Kültüre özgü biçimi kullanarak bir sayının span gösterimini Decimal 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] System::Decimal % result);
public static bool TryParse (ReadOnlySpan<char> s, out decimal result);
static member TryParse : ReadOnlySpan<char> * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Decimal) As Boolean

Parametreler

s
ReadOnlySpan<Char>

Dönüştürülecek sayıyı temsil eden karakterleri içeren bir yayılma alanı.

result
Decimal

Bu yöntem döndürdüğünde, siçinde bulunan sayısal değere eşdeğer Decimal 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. s parametresi null veya Empty ya da Decimal.MinValue veya Decimal.MaxValuedeğerinden büyük bir sayıyı temsil ederse dönüştürme başarısız olur. Bu parametre uininitialized 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.

Şunlara uygulanır

TryParse(String, Decimal)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

Bir sayının dize gösterimini Decimal 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] System::Decimal % result);
public static bool TryParse (string s, out decimal result);
public static bool TryParse (string? s, out decimal result);
static member TryParse : string * decimal -> bool
Public Shared Function TryParse (s As String, ByRef result As Decimal) As Boolean

Parametreler

s
String

Dönüştürülecek sayının dize gösterimi.

result
Decimal

Bu yöntem döndürdüğünde, siçinde bulunan sayısal değere eşdeğer Decimal 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 ise, dönüştürme işlemi geçerli bir biçimdeki bir sayı değilse veya decimal.minvalue veya Decimal.MaxValuedeğerinden büyük bir sayıyı temsil ederse başarısız olur. Bu parametre uininitialized 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 Decimal değerlere dönüştürmek için Decimal.TryParse(String, Decimal) yöntemini kullanır. en-US geçerli kültür olduğunu varsayar.

string value;
decimal number;

// Parse a floating-point value with a thousands separator.
value = "1,643.57";
if (Decimal.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 (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);

// Parse value in exponential notation.
value = "-1.643e6";
if (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);

// Parse a negative integer value.
value = "-1689346178821";
if (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);
// The example displays the following output to the console:
//       1643.57
//       Unable to parse '$1,643.57'.
//       Unable to parse '-1.643e6'.
//       -1689346178821
// Parse a floating-point value with a thousands separator.
let value = "1,643.57"
match Decimal.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 Decimal.TryParse value with
| true, number ->
    printfn $"{number}"
| _ -> 
    printfn $"Unable to parse '{value}'."

// Parse value in exponential notation.
let value = "-1.643e6"
match Decimal.TryParse value with
| true, number ->
    printfn $"{number}"
| _ -> 
    printfn $"Unable to parse '{value}'."

// Parse a negative integer value.
let value = "-1689346178821"
match Decimal.TryParse value with
| true, number ->
    printfn $"{number}"
| _ -> 
    printfn $"Unable to parse '{value}'."
// The example displays the following output to the console:
//       1643.57
//       Unable to parse '$1,643.57'.
//       Unable to parse '-1.643e6'.
//       -1689346178821
Dim value As String
Dim number As Decimal

' Parse a floating-point value with a thousands separator.
value = "1,643.57"
If Decimal.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 Decimal.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 Decimal.TryParse(value, number)
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)   
End If

' Parse a negative integer value.
value = "-1689346178821"
If Decimal.TryParse(value, number)
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)   
End If
' The example displays the following output to the console:
'       1643.57
'       Unable to parse '$1,643.57'.
'       Unable to parse '-1.643e6'.
'       -1689346178821

Açıklamalar

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

Parametre s formun bir sayısını içerir:

[ws] [sign] [rakamlar,]rakamlar[.kesirli-basamaklar][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.
imzalama İsteğe bağlı bir işaret.
basamak 0 ile 9 arasında bir basamak dizisi.
, Kültüre özgü binlik ayırıcı simgesi.
. Kültüre özgü ondalık nokta simgesi.
Kesirli basamak 0 ile 9 arasında bir basamak dizisi.

Parametre s, NumberStyles.Number stili 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. siçinde bulunabilecek öğeleri (para birimi simgeleri, binlik ayırıcılar ve boşluk gibi) açıkça tanımlamak için Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) yöntemi aşırı yüklemesini kullanın.

Parametre s, 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. CurrentInfo. Belirtilen başka bir kültürün biçimlendirme bilgilerini kullanarak bir dizeyi ayrıştırmak için Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) yöntemi aşırı yüklemesini kullanın.

Gerekirse, s değeri en yakına yuvarlama kullanılarak yuvarlanir.

Decimal nesnesinin 29 basamaklı duyarlık değeri vardır. s 29'dan fazla basamağı olan, ancak kesirli bölümü olan ve MaxValue ile MinValuearalığında olan bir sayıyı temsil ederse, sayı yuvarlanır, kırpılmaz, en yakına yuvarlama kullanılarak 29 basamağı bulur.

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

Ayrıca bkz.

Şunlara uygulanır

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal)

Kaynak:
Decimal.cs
Kaynak:
Decimal.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] System::Decimal % result) = IUtf8SpanParsable<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out decimal result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * decimal -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As Decimal) As Boolean

Parametreler

utf8Text
ReadOnlySpan<Byte>

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

provider
IFormatProvider

utf8Texthakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne.

result
Decimal

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, Decimal)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.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] System::Decimal % result) = ISpanParsable<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out decimal result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As Decimal) As Boolean

Parametreler

s
ReadOnlySpan<Char>

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

provider
IFormatProvider

shakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne.

result
Decimal

Bu yöntem döndürdüğünde, sbaş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(String, IFormatProvider, Decimal)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

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

public:
 static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = IParsable<System::Decimal>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out decimal result);
static member TryParse : string * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As Decimal) As Boolean

Parametreler

s
String

Ayrıştırmak için dize.

provider
IFormatProvider

shakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne.

result
Decimal

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<Byte>, NumberStyles, IFormatProvider, Decimal)

Kaynak:
Decimal.cs
Kaynak:
Decimal.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] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out decimal result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * decimal -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean

Parametreler

utf8Text
ReadOnlySpan<Byte>

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

style
NumberStyles

utf8Textiçinde bulunabilecek sayı stillerinin bit düzeyinde birleşimi.

provider
IFormatProvider

utf8Texthakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne.

result
Decimal

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>, NumberStyles, IFormatProvider, Decimal)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

Belirtilen stil ve kültüre özgü biçimi kullanarak bir sayının span gösterimini Decimal 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] System::Decimal % result);
public:
 static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out decimal result);
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out decimal result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean

Parametreler

s
ReadOnlySpan<Char>

Dönüştürülecek sayıyı temsil eden karakterleri içeren bir yayılma alanı.

style
NumberStyles

sizin verilen biçimini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değer Number.

provider
IFormatProvider

shakkında kültüre özgü ayrıştırma bilgileri sağlayan bir nesne.

result
Decimal

Bu yöntem döndürdüğünde, siçinde bulunan sayısal değere eşdeğer Decimal 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 ise, dönüştürme işlemi ile uyumlu bir biçimdeki bir sayı değilse veya Decimal.MinValue veya Decimal.MaxValuedeğerinden küçük bir sayıyı temsil ederse başarısız olur. Bu parametre uininitialized 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.

Şunlara uygulanır

TryParse(String, NumberStyles, IFormatProvider, Decimal)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

Belirtilen stili ve kültüre özgü biçimi kullanarak bir sayının dize gösterimini Decimal 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] System::Decimal % result);
public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out decimal result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out decimal result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean

Parametreler

s
String

Dönüştürülecek sayının dize gösterimi.

style
NumberStyles

sizin verilen biçimini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değer Number.

provider
IFormatProvider

shakkında kültüre özgü ayrıştırma bilgileri sağlayan bir nesne.

result
Decimal

Bu yöntem döndürdüğünde, siçinde bulunan sayısal değere eşdeğer Decimal 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 ise, dönüştürme işlemi ile uyumlu bir biçimdeki bir sayı değilse veya Decimal.MinValue veya Decimal.MaxValuedeğerinden küçük bir sayıyı temsil ederse başarısız olur. Bu parametre uininitialized 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

style NumberStyles bir değer değildir.

-veya-

style AllowHexSpecifier değerdir.

Örnekler

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

string value;
NumberStyles style;
CultureInfo culture;
decimal number;

// Parse currency value using en-GB culture.
value = "£1,097.63";
style = NumberStyles.Number | NumberStyles.AllowCurrencySymbol;
culture = CultureInfo.CreateSpecificCulture("en-GB");
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       Converted '£1,097.63' to 1097.63.

value = "1345,978";
style = NumberStyles.AllowDecimalPoint;
culture = CultureInfo.CreateSpecificCulture("fr-FR");
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       Converted '1345,978' to 1345.978.

value = "1.345,978";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands;
culture = CultureInfo.CreateSpecificCulture("es-ES");
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       Converted '1.345,978' to 1345.978.

value = "1 345,978";
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       Unable to convert '1 345,978'.
// Parse currency value using en-GB culture.
let value = "£1,097.63"
let style = NumberStyles.Number ||| NumberStyles.AllowCurrencySymbol
let culture = CultureInfo.CreateSpecificCulture "en-GB"
match Decimal.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ -> 
    printfn $"Unable to convert '{value}'."
// Displays:
//       Converted '£1,097.63' to 1097.63.

let value = "1345,978"
let style = NumberStyles.AllowDecimalPoint
let culture = CultureInfo.CreateSpecificCulture "fr-FR"
match Decimal.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ -> 
    printfn $"Unable to convert '{value}'."
// Displays:
//       Converted '1345,978' to 1345.978.

let value = "1.345,978"
let style = NumberStyles.AllowDecimalPoint ||| NumberStyles.AllowThousands
let culture = CultureInfo.CreateSpecificCulture "es-ES"
match Decimal.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ -> 
    printfn $"Unable to convert '{value}'."
// Displays:
//       Converted '1.345,978' to 1345.978.

let value = "1 345,978"
match Decimal.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ -> 
    printfn $"Unable to convert '{value}'."
// Displays:
//       Unable to convert '1 345,978'.
Dim value As String
Dim style As NumberStyles
Dim culture As CultureInfo
Dim number As Decimal

' Parse currency value using en-GB culture.
value = "£1,097.63"
style = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol
culture = CultureInfo.CreateSpecificCulture("en-GB")
If Decimal.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If    
' Displays: 
'       Converted '£1,097.63' to 1097.63.

value = "1345,978"
style = NumberStyles.AllowDecimalPoint
culture = CultureInfo.CreateSpecificCulture("fr-FR")
If Decimal.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If    
' Displays:
'       Converted '1345,978' to 1345.978.

value = "1.345,978"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands
culture = CultureInfo.CreateSpecificCulture("es-ES")
If Decimal.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If    
' Displays: 
'       Converted '1.345,978' to 1345.978.

value = "1 345,978"
If Decimal.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If    
' Displays:
'       Unable to convert '1 345,978'.

Açıklamalar

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 Decimal.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:

Stilin değerine bağlı olarak, s parametresi aşağıdaki öğeleri içerebilir:

[ws] [$] [sign] [rakamlar,]digits[.fractional-digits][e[sign]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, styleNumberStyles.AllowCurrencySymbol bayrağı içeriyorsa s görünebilir.
imzalama İsteğe bağlı bir işaret.
basamak 0 ile 9 arasında bir basamak dizisi.
. Kültüre özgü ondalık nokta simgesi.
Kesirli basamak 0 ile 9 arasında bir basamak dizisi.

style parametresi, s parametresinin izin verilen biçimini belirtir ve bit düzeyinde OR işlemi kullanılarak birleştirilmiş bir veya daha fazla NumberStyles numaralandırılmış sabit olabilir. style null ise, sNumberStyles.Number stili kullanılarak yorumlanır.

provider parametresi, NumberFormatInfo veya CultureInfo nesnesi gibi IFormatProvider bir uygulamadır. provider parametresi, ayrıştırmada kullanılan kültüre özgü bilgiler sağlar. provider nullise, iş parçacığı geçerli kültürü kullanılır.

Decimal nesnesinin 29 basamaklı duyarlık değeri vardır. s 29'dan fazla basamağı olan, ancak kesirli bölümü olan ve MaxValue ile MinValuearalığında olan bir sayıyı temsil ederse, sayı yuvarlanır, kırpılmaz, en yakına yuvarlama kullanılarak 29 basamağı bulur.

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.

Şunlara uygulanır