Decimal.Parse 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 Decimal eşdeğerine dönüştürür.
Aşırı Yüklemeler
Parse(String) |
Bir sayının dize gösterimini Decimal eşdeğerine dönüştürür. |
Parse(ReadOnlySpan<Byte>, IFormatProvider) |
UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor. |
Parse(ReadOnlySpan<Char>, IFormatProvider) |
Bir karakter aralığını bir değere ayrıştırıyor. |
Parse(String, NumberStyles) |
Belirtilen stildeki bir sayının dize gösterimini Decimal eşdeğerine dönüştürür. |
Parse(String, IFormatProvider) |
Belirtilen kültüre özgü biçim bilgilerini kullanarak bir sayının dize gösterimini Decimal eşdeğerine dönüştürür. |
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider) |
UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor. |
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
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. |
Parse(String, NumberStyles, IFormatProvider) |
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. |
Parse(String)
- 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.
public:
static System::Decimal Parse(System::String ^ s);
public static decimal Parse (string s);
static member Parse : string -> decimal
Public Shared Function Parse (s As String) As Decimal
Parametreler
- s
- String
Dönüştürülecek sayının dize gösterimi.
Döndürülenler
s
içinde bulunan sayıya eşdeğerdir.
Özel durumlar
s
null
.
s
doğru biçimde değil.
s
Decimal.MinValue veya Decimal.MaxValuedeğerinden büyük bir sayıyı temsil eder.
Örnekler
Aşağıdaki kod örneği, Decimal değerlerin dize gösterimlerini ayrıştırmak için Parse(String) yöntemini kullanır.
string value;
decimal number;
// Parse an integer with thousands separators.
value = "16,523,421";
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '16,523,421' converted to 16523421.
// Parse a floating point value with thousands separators
value = "25,162.1378";
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '25,162.1378' converted to 25162.1378.
// Parse a floating point number with US currency symbol.
value = "$16,321,421.75";
try
{
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
// Unable to parse '$16,321,421.75'.
// Parse a number in exponential notation
value = "1.62345e-02";
try
{
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
// Unable to parse '1.62345e-02'.
// Parse an integer with thousands separators.
let value = "16,523,421"
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
// Displays:
// '16,523,421' converted to 16523421.
// Parse a floating point value with thousands separators
let value = "25,162.1378"
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
// Displays:
// '25,162.1378' converted to 25162.1378.
// Parse a floating point number with US currency symbol.
let value = "$16,321,421.75"
try
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Displays:
// Unable to parse '$16,321,421.75'.
// Parse a number in exponential notation
let value = "1.62345e-02"
try
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Displays:
// Unable to parse '1.62345e-02'.
Dim value As String
Dim number As Decimal
' Parse an integer with thousands separators.
value = "16,523,421"
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '16,523,421' converted to 16523421.
' Parse a floating point value with thousands separators
value = "25,162.1378"
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '25,162.1378' converted to 25162.1378.
' Parse a floating point number with US currency symbol.
value = "$16,321,421.75"
Try
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
' Unable to parse '$16,321,421.75'.
' Parse a number in exponential notation
value = "1.62345e-02"
Try
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
' Unable to parse '1.62345e-02'.
Açıklamalar
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.
s
içinde bulunabilecek öğeleri (para birimi simgeleri, binlik ayırıcıları ve boşluk gibi) açıkça tanımlamak için Decimal.Parse(String, NumberStyles) veya Decimal.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanın.
Parametre s
, geçerli sistem kültürü için başlatılan bir NumberFormatInfo biçimlendirme bilgileri kullanılarak ayrıştırılır. Daha fazla bilgi için bkz. CurrentInfo. Başka bir kültürün biçimlendirme bilgilerini kullanarak bir dizeyi ayrıştırmak için Decimal.Parse(String, IFormatProvider) veya Decimal.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanın.
Gerekirse, s
değeri en yakına yuvarlama kullanılarak yuvarlanir.
Decimal 29 basamaklı duyarlık 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.
- TryParse
- ToString()
- .NET'da Sayısal Dizeleri Ayrıştırma
Şunlara uygulanır
Parse(ReadOnlySpan<Byte>, IFormatProvider)
- Kaynak:
- Decimal.cs
- Kaynak:
- Decimal.cs
UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.
public:
static System::Decimal Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<System::Decimal>::Parse;
public static decimal Parse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> decimal
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As Decimal
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.
Döndürülenler
utf8Text
ayrıştırma sonucu.
Uygulamalar
Şunlara uygulanır
Parse(ReadOnlySpan<Char>, IFormatProvider)
- Kaynak:
- Decimal.cs
- Kaynak:
- Decimal.cs
- Kaynak:
- Decimal.cs
Bir karakter aralığını bir değere ayrıştırıyor.
public:
static System::Decimal Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<System::Decimal>::Parse;
public static decimal Parse (ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> decimal
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As Decimal
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.
Döndürülenler
s
ayrıştırma sonucu.
Uygulamalar
Şunlara uygulanır
Parse(String, NumberStyles)
- Kaynak:
- Decimal.cs
- Kaynak:
- Decimal.cs
- Kaynak:
- Decimal.cs
Belirtilen stildeki bir sayının dize gösterimini Decimal eşdeğerine dönüştürür.
public:
static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style);
public static decimal Parse (string s, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> decimal
Public Shared Function Parse (s As String, style As NumberStyles) As Decimal
Parametreler
- s
- String
Dönüştürülecek sayının dize gösterimi.
- style
- NumberStyles
s
'de bulunabilecek stil öğelerini gösteren NumberStyles değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değer Number.
Döndürülenler
style
tarafından belirtilen s
içinde yer alan sayıya eşdeğer Decimal numarası.
Özel durumlar
s
null
.
s
doğru biçimde değil.
s
Decimal.MinValue veya Decimal.MaxValue'den büyük bir sayıyı temsil eder
Örnekler
Aşağıdaki kod örneği, en-US kültürünü kullanarak Decimal değerlerin dize gösterimlerini ayrıştırmak için Parse(String, NumberStyles) yöntemini kullanır.
string value;
decimal number;
NumberStyles style;
// Parse string with a floating point value using NumberStyles.None.
value = "8694.12";
style = NumberStyles.None;
try
{
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
// Unable to parse '8694.12'.
// Parse string with a floating point value and allow decimal point.
style = NumberStyles.AllowDecimalPoint;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '8694.12' converted to 8694.12.
// Parse string with negative value in parentheses
value = "(1,789.34)";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands |
NumberStyles.AllowParentheses;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '(1,789.34)' converted to -1789.34.
// Parse string using Number style
value = " -17,623.49 ";
style = NumberStyles.Number;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// ' -17,623.49 ' converted to -17623.49.
// Parse string with a floating point value using NumberStyles.None.
let value = "8694.12"
let style = NumberStyles.None
try
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Displays:
// Unable to parse '8694.12'.
// Parse string with a floating point value and allow decimal point.
let style = NumberStyles.AllowDecimalPoint
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
// '8694.12' converted to 8694.12.
// Parse string with negative value in parentheses
let value = "(1,789.34)"
let style =
NumberStyles.AllowDecimalPoint |||
NumberStyles.AllowThousands |||
NumberStyles.AllowParentheses
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
// '(1,789.34)' converted to -1789.34.
// Parse string using Number style
let value = " -17,623.49 "
let style = NumberStyles.Number
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
// ' -17,623.49 ' converted to -17623.49.
Dim value As String
Dim number As Decimal
Dim style As NumberStyles
' Parse string with a floating point value using NumberStyles.None.
value = "8694.12"
style = NumberStyles.None
Try
number = Decimal.Parse(value, style)
Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
' Unable to parse '8694.12'.
' Parse string with a floating point value and allow decimal point.
style = NumberStyles.AllowDecimalPoint
number = Decimal.Parse(value, style)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '8694.12' converted to 8694.12.
' Parse string with negative value in parentheses
value = "(1,789.34)"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands Or _
NumberStyles.AllowParentheses
number = Decimal.Parse(value, style)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '(1,789.34)' converted to -1789.34.
' Parse string using Number style
value = " -17,623.49 "
style = NumberStyles.Number
number = Decimal.Parse(value, style)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' ' -17,623.49 ' converted to -17623.49.
Açıklamalar
style
parametresi, ayrıştırma işleminin başarılı olması için s
parametresinde izin verilen stil öğelerini (binlik ayırıcılar, boşluk ve para birimi simgeleri gibi) tanımlar.
NumberStyles numaralandırmasından bit bayraklarının birleşimi olmalıdır. Aşağıdaki NumberStyles üyeleri desteklenmez:
style
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 ve style NumberStyles.AllowTrailingWhite bayrağı içeriyorsa s sonunda görüntülenebilir. |
$ | Kültüre özgü para birimi simgesi. Dizedeki konumu, geçerli kültürün NumberFormatInfo.CurrencyNegativePattern ve NumberFormatInfo.CurrencyPositivePattern özellikleri tarafından tanımlanır.
style
NumberStyles.AllowCurrencySymbol bayrağı içeriyorsa geçerli kültürün para birimi simgesi 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. |
basamak | 0 ile 9 arasında bir basamak dizisi. |
, | Kültüre özgü binlik ayırıcı simgesi. geçerli kültürün binlik ayırıcısı, 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 |
0 ile 9 arasında bir basamak dizisi. Kesirli basamaklar s yalnızca style NumberStyles.AllowDecimalPoint bayrağı içeriyorsa görüntülenebilir. |
e | Değerin üstel gösterimde temsil olduğunu gösteren 'e' veya 'E' karakteri.
s parametresi, style NumberStyles.AllowExponent bayrağı içeriyorsa, bir sayıyı üstel gösterimde temsil edebilir. |
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 (None stiline karşılık gelir) Decimal türü aralığındaysa her zaman başarıyla ayrıştırılır. Kalan NumberStyles üyeleri, giriş dizesinde bulunması gerekmeyen öğeleri denetler. Aşağıdaki tablo, tek tek NumberStyles üyelerinin s
'de mevcut olabilecek öğeleri nasıl etkilediğini gösterir.
NumberStyles değeri | Basamaklara ek olarak s içinde izin verilen öğeler |
---|---|
None | basamakları yalnızca öğe. |
AllowDecimalPoint | |
AllowExponent |
s parametresi üstel gösterimi de kullanabilir. Bu bayrak, 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 , , ve . öğeleri. |
Any |
s dışındaki tüm stiller onaltılık bir sayıyı temsil edemez. |
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. CurrentInfo.
Decimal 29 basamaklı duyarlık 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, styles
NumberStyles.AllowThousands ve NumberStyles.AllowDecimalPoint değerlerini içerir ve geçerli para birimi veya sayı ondalık ve grup ayırıcıları aynıdır; 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.
- TryParse
- ToString()
- .NET'da Sayısal Dizeleri Ayrıştırma
Şunlara uygulanır
Parse(String, IFormatProvider)
- Kaynak:
- Decimal.cs
- Kaynak:
- Decimal.cs
- Kaynak:
- Decimal.cs
Belirtilen kültüre özgü biçim bilgilerini kullanarak bir sayının dize gösterimini Decimal eşdeğerine dönüştürür.
public:
static System::Decimal Parse(System::String ^ s, IFormatProvider ^ provider);
public:
static System::Decimal Parse(System::String ^ s, IFormatProvider ^ provider) = IParsable<System::Decimal>::Parse;
public static decimal Parse (string s, IFormatProvider provider);
public static decimal Parse (string s, IFormatProvider? provider);
static member Parse : string * IFormatProvider -> decimal
Public Shared Function Parse (s As String, provider As IFormatProvider) As Decimal
Parametreler
- s
- String
Dönüştürülecek sayının dize gösterimi.
- provider
- IFormatProvider
s
hakkında kültüre özgü ayrıştırma bilgileri sağlayan bir IFormatProvider.
Döndürülenler
provider
tarafından belirtilen s
içinde yer alan sayıya eşdeğer Decimal numarası.
Uygulamalar
Özel durumlar
s
null
.
s
doğru biçimde değil.
s
Decimal.MinValue veya Decimal.MaxValuedeğerinden büyük bir sayıyı temsil eder.
Örnekler
Aşağıdaki örnek, web formunun düğme tıklama olay işleyicisidir. Kullanıcının yerel ayarını belirlemek için HttpRequest.UserLanguages özelliği tarafından döndürülen diziyi kullanır. Ardından bu yerel ayara karşılık gelen bir CultureInfo nesnesi örneği oluşturur. Bu CultureInfo nesnesine ait NumberFormatInfo nesnesi, kullanıcının girişini Decimal bir değere dönüştürmek için Parse(String, IFormatProvider) yöntemine geçirilir.
protected void OkToDecimal_Click(object sender, EventArgs e)
{
string locale;
decimal number;
CultureInfo culture;
// Return if string is empty
if (String.IsNullOrEmpty(this.inputNumber.Text))
return;
// Get locale of web request to determine possible format of number
if (Request.UserLanguages.Length == 0)
return;
locale = Request.UserLanguages[0];
if (String.IsNullOrEmpty(locale))
return;
// Instantiate CultureInfo object for the user's locale
culture = new CultureInfo(locale);
// Convert user input from a string to a number
try
{
number = Decimal.Parse(this.inputNumber.Text, culture.NumberFormat);
}
catch (FormatException)
{
return;
}
catch (Exception)
{
return;
}
// Output number to label on web form
this.outputNumber.Text = "Number is " + number.ToString();
}
Protected Sub OkToDecimal_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OkToDecimal.Click
Dim locale As String
Dim culture As CultureInfo
Dim number As Decimal
' Return if string is empty
If String.IsNullOrEmpty(Me.inputNumber.Text) Then Exit Sub
' Get locale of web request to determine possible format of number
If Request.UserLanguages.Length = 0 Then Exit Sub
locale = Request.UserLanguages(0)
If String.IsNullOrEmpty(locale) Then Exit Sub
' Instantiate CultureInfo object for the user's locale
culture = New CultureInfo(locale)
' Convert user input from a string to a number
Try
number = Decimal.Parse(Me.inputNumber.Text, culture.NumberFormat)
Catch ex As FormatException
Exit Sub
Catch ex As Exception
Exit Sub
End Try
' Output number to label on web form
Me.outputNumber.Text = "Number is " & number.ToString()
End Sub
Açıklamalar
Parse(String, IFormatProvider) yönteminin bu aşırı yüklemesi, çeşitli yollarla biçimlendirilebilen metni Decimal bir değere dönüştürmek için yaygın olarak kullanılır. Örneğin, bir kullanıcı tarafından girilen metni HTML metin kutusuna sayısal bir değere dönüştürmek için kullanılabilir.
s
parametresi 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. |
s
parametresi 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.
s
içinde bulunabilecek öğeleri (para birimi simgeleri, binlik ayırıcılar ve boşluk gibi) açıkça tanımlamak için Decimal.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanın.
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
null
ise, 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.
- TryParse
- ToString()
- .NET'da Sayısal Dizeleri Ayrıştırma
Şunlara uygulanır
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)
- Kaynak:
- Decimal.cs
- Kaynak:
- Decimal.cs
UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.
public static decimal Parse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Number, Optional provider As IFormatProvider = Nothing) As Decimal
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.
Döndürülenler
utf8Text
ayrıştırma sonucu.
Uygulamalar
Şunlara uygulanır
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
- 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.
public static decimal Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider? provider = default);
public static decimal Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Number, Optional provider As IFormatProvider = Nothing) As Decimal
Parametreler
- s
- ReadOnlySpan<Char>
Dönüştürülecek sayıyı temsil eden karakterleri içeren yayılma alanı.
- style
- NumberStyles
s
'de bulunabilecek stil öğelerini gösteren NumberStyles değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değer Number.
- provider
- IFormatProvider
s
biçimi hakkında kültüre özgü bilgiler sağlayan bir IFormatProvider nesnesi.
Döndürülenler
style
ve provider
tarafından belirtilen s
içinde bulunan sayıya eşdeğer Decimal sayıdır.
Uygulamalar
Şunlara uygulanır
Parse(String, NumberStyles, IFormatProvider)
- 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.
public:
static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<System::Decimal>::Parse;
public static decimal Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
public static decimal Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As Decimal
Parametreler
- s
- String
Dönüştürülecek sayının dize gösterimi.
- style
- NumberStyles
s
'de bulunabilecek stil öğelerini gösteren NumberStyles değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değer Number.
- provider
- IFormatProvider
s
biçimi hakkında kültüre özgü bilgiler sağlayan bir IFormatProvider nesnesi.
Döndürülenler
style
ve provider
tarafından belirtilen s
içinde bulunan sayıya eşdeğer Decimal sayıdır.
Uygulamalar
Özel durumlar
s
doğru biçimde değil.
s
Decimal.MinValue veya Decimal.MaxValuedeğerinden büyük bir sayıyı temsil eder.
s
null
.
Örnekler
Aşağıdaki örnek, Decimal değerlerin dize gösterimlerini ayrıştırmak için çeşitli style
ve provider
parametreleri kullanır.
string value;
decimal number;
NumberStyles style;
CultureInfo provider;
// Parse string using " " as the thousands separator
// and "," as the decimal separator for fr-FR culture.
value = "892 694,12";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands;
provider = new CultureInfo("fr-FR");
number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '892 694,12' converted to 892694.12.
try
{
number = Decimal.Parse(value, style, CultureInfo.InvariantCulture);
Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
// Unable to parse '892 694,12'.
// Parse string using "$" as the currency symbol for en-GB and
// en-US cultures.
value = "$6,032.51";
style = NumberStyles.Number | NumberStyles.AllowCurrencySymbol;
provider = new CultureInfo("en-GB");
try
{
number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
// Unable to parse '$6,032.51'.
provider = new CultureInfo("en-US");
number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
// '$6,032.51' converted to 6032.51.
// Parse string using " " as the thousands separator
// and "," as the decimal separator for fr-FR culture.
let value = "892 694,12"
let style = NumberStyles.AllowDecimalPoint ||| NumberStyles.AllowThousands
let provider = CultureInfo "fr-FR"
let number = Decimal.Parse(value, style, provider)
printfn $"'{value}' converted to {number}."
// Displays:
// '892 694,12' converted to 892694.12.
try
let number = Decimal.Parse(value, style, CultureInfo.InvariantCulture)
printfn $"'{value}' converted to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Displays:
// Unable to parse '892 694,12'.
// Parse string using "$" as the currency symbol for en-GB and
// en-US cultures.
let value = "$6,032.51"
let style = NumberStyles.Number ||| NumberStyles.AllowCurrencySymbol
let provider = CultureInfo "en-GB"
try
let number = Decimal.Parse(value, style, provider)
printfn $"'{value}' converted to {number}."
with :? FormatException ->
printfn $"Unable to parse '{value}'."
// Displays:
// Unable to parse '$6,032.51'.
let provider = CultureInfo "en-US"
let number = Decimal.Parse(value, style, provider)
printfn $"'{value}' converted to {number}."
// Displays:
// '$6,032.51' converted to 6032.51.
Dim value As String
Dim number As Decimal
Dim style As NumberStyles
Dim provider As CultureInfo
' Parse string using " " as the thousands separator
' and "," as the decimal separator for fr-FR culture.
value = "892 694,12"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands
provider = New CultureInfo("fr-FR")
number = Decimal.Parse(value, style, provider)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '892 694,12' converted to 892694.12.
Try
number = Decimal.Parse(value, style, CultureInfo.InvariantCulture)
Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
' Unable to parse '892 694,12'.
' Parse string using "$" as the currency symbol for en-GB and
' en-US cultures.
value = "$6,032.51"
style = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol
provider = New CultureInfo("en-GB")
Try
number = Decimal.Parse(value, style, provider)
Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
' Unable to parse '$6,032.51'.
provider = New CultureInfo("en-US")
number = Decimal.Parse(value, style, provider)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
' '$6,032.51' converted to 6032.51.
Açıklamalar
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:
style
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 |
---|---|
$ | Kültüre özgü para birimi simgesi. Dizedeki konumu, provider parametresinin GetFormat yöntemi tarafından döndürülen NumberFormatInfo nesnesinin CurrencyNegativePattern ve CurrencyPositivePattern özellikleriyle tanımlanır. para birimi simgesi, style NumberStyles.AllowCurrencySymbol bayrağı içeriyorsa s görünebilir. |
ws | İsteğe bağlı boşluk.
style
NumberStyles.AllowLeadingWhite bayrağı içeriyorsa boşluk s başında ve style NumberStyles.AllowTrailingWhite bayrağı içeriyorsa s sonunda görüntülenebilir. |
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. |
basamak | 0 ile 9 arasında bir basamak dizisi. |
, | Kültüre özgü binlik ayırıcı simgesi.
style
NumberStyles.AllowThousands bayrağı içeriyorsa, provider tarafından tanımlanan kültürün binlik ayırıcısı s görünebilir. |
. | Kültüre özgü ondalık nokta simgesi.
style
NumberStyles.AllowDecimalPoint bayrağı içeriyorsa, provider tarafından tanımlanan kültürün ondalık noktası simgesi s 'de görüntülenebilir. |
Kesirli basamak |
0 ile 9 arasında bir basamak dizisi. Kesirli basamaklar s yalnızca style NumberStyles.AllowDecimalPoint bayrağı içeriyorsa görüntülenebilir. |
e | Değerin üstel gösterimde temsil olduğunu gösteren 'e' veya 'E' karakteri.
s parametresi, style NumberStyles.AllowExponent bayrağı içeriyorsa, bir sayıyı üstel gösterimde temsil edebilir. |
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 (None stiline karşılık gelir) Decimal türü aralığındaysa her zaman başarıyla ayrıştırılır. Kalan NumberStyles üyeleri, giriş dizesinde bulunması gerekmeyen öğeleri denetler. Aşağıdaki tablo, tek tek NumberStyles üyelerinin s
'de mevcut olabilecek öğeleri nasıl etkilediğini gösterir.
NumberStyles değeri | Basamaklara ek olarak s içinde izin verilen öğeler |
---|---|
None | basamakları yalnızca öğe. |
AllowDecimalPoint | |
AllowExponent |
s parametresi üstel gösterimi de kullanabilir. Bu bayrak, 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 , ,ve . öğeleri. |
Any |
s dışındaki tüm stiller onaltılık bir sayıyı temsil edemez. |
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
null
ise, 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.
- TryParse
- ToString()
- .NET'da Sayısal Dizeleri Ayrıştırma