Aracılığıyla paylaş


Decimal.Parse Yöntem

Tanım

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

siçinde bulunan sayıya eşdeğerdir.

Özel durumlar

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. siç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.

Ş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

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

Döndürülenler

utf8Textayrış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

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

Döndürülenler

sayrış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

styletarafından belirtilen s içinde yer alan sayıya eşdeğer Decimal numarası.

Özel durumlar

style NumberStyles bir değer değildir.

-veya-

style AllowHexSpecifier değerdir.

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:

styledeğ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 styleNumberStyles.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, styleNumberStyles.AllowLeadingSign bayrağı içeriyorsa s başında ve styleNumberStyles.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ı, styleNumberStyles.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 styleNumberStyles.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, styleNumberStyles.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 . Öğeleri kesirli basamaklar ve .
AllowExponent s parametresi üstel gösterimi de kullanabilir. Bu bayrak, Ebasamakbasamak biçimindeki değerleri destekler; pozitif veya negatif işaretler ve ondalık nokta simgeleri gibi öğelerle dizeleri başarıyla ayrıştırmak için ek bayraklar gerekir.
AllowLeadingWhite sbaşındaki ws öğesi.
AllowTrailingWhite ssonundaki ws öğesi.
AllowLeadingSign sbaşındaki sign öğesi.
AllowTrailingSign ssonundaki 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 başında veya sonundaki ws öğesi, başında ve simgesi . 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, stylesNumberStyles.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.

Ş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

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

Döndürülenler

providertarafından belirtilen s içinde yer alan sayıya eşdeğer Decimal numarası.

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.

Ö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. siç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 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

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

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

provider
IFormatProvider

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

Döndürülenler

utf8Textayrış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

sbiçimi hakkında kültüre özgü bilgiler sağlayan bir IFormatProvider nesnesi.

Döndürülenler

style ve providertarafı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

sbiçimi hakkında kültüre özgü bilgiler sağlayan bir IFormatProvider nesnesi.

Döndürülenler

style ve providertarafı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.

style NumberStyles bir değer değildir.

-veya-

style AllowHexSpecifier değerdir.

Ö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:

styledeğ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, styleNumberStyles.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 styleNumberStyles.AllowTrailingWhite bayrağı içeriyorsa s sonunda görüntülenebilir.
imzalama İsteğe bağlı bir işaret. İşaret, styleNumberStyles.AllowLeadingSign bayrağı içeriyorsa s başında ve styleNumberStyles.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 styleNumberStyles.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, styleNumberStyles.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 . Öğeleri kesirli basamaklar ve .
AllowExponent s parametresi üstel gösterimi de kullanabilir. Bu bayrak, Ebasamakbasamak biçimindeki değerleri destekler; pozitif veya negatif işaretler ve ondalık nokta simgeleri gibi öğelerle dizeleri başarıyla ayrıştırmak için ek bayraklar gerekir.
AllowLeadingWhite sbaşındaki ws öğesi.
AllowTrailingWhite ssonundaki ws öğesi.
AllowLeadingSign sbaşındaki sign öğesi.
AllowTrailingSign ssonundaki 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 başındaki veya sonundaki ws öğesi, başında ve . simgesi. 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 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