Decimal.Parse Yöntem

Tanım

Bir sayının dize gösterimini eşdeğerine Decimal dönüştürür.

Aşırı Yüklemeler

Parse(String)

Bir sayının dize gösterimini eşdeğerine Decimal 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 eşdeğerine Decimal 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 stili ve kültüre özgü biçimi kullanarak bir sayının span gösterimini eşdeğerine Decimal 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 eşdeğerine Decimal 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

içinde sbulunan sayıya eşdeğerdir.

Özel durumlar

s, null değeridir.

s doğru biçimde değil.

sDecimal.MinValue değerinden küçük veya Decimal.MaxValue değerinden büyük bir sayıyı temsil eder.

Örnekler

Aşağıdaki kod örneği, değerlerin Parse(String) dize gösterimlerini Decimal ayrıştırmak için 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çlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.

Öğe Açıklama
Ws İsteğe bağlı beyaz boşluk.
sign İsteğe bağlı bir işaret.
Basamak 0 İle 9 arasında değişen bir basamak dizisi.
, Kültüre özgü binler basamaklarını ayıran simge.
. Bir kültüre özgü ondalık nokta sembolü.
kesirli basamaklar 0 İle 9 arasında değişen bir basamak dizisi.

Parametre s , stil kullanılarak NumberStyles.Number yorumlanır. Bu, boşluk ve binlik ayırıcılarına izin verildiği, ancak para birimi simgelerine izin verilmediği anlamına gelir. içinde sbulunabilecek öğeleri (para birimi simgeleri, binlik ayırıcıları ve boşluk gibi) açıkça tanımlamak için veya Decimal.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanınDecimal.Parse(String, NumberStyles).

Parametre s , geçerli sistem kültürü için başlatılan bir NumberFormatInfo içindeki 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 veya Decimal.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanınDecimal.Parse(String, IFormatProvider).

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

A Decimal , 29 basamaklı duyarlıklara sahiptir. s 29'dan fazla basamağı olan, ancak kesirli bölümü olan ve aralığı MaxValueMinValueiçinde olan bir sayıyı temsil ederse, sayı yuvarlanır, yuvarlanır, kırpılmaz ve en yakına yuvarlama kullanılarak 29 basamağı olur.

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

Ayrıca bkz.

Şunlara uygulanır

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

hakkında utf8Textkültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

Döndürülenler

ayrıştırma utf8Textsonucu.

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ılması.

provider
IFormatProvider

hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

Döndürülenler

ayrıştırma ssonucu.

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 eşdeğerine Decimal 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

içinde sbulunabilecek stil öğelerini gösteren değerlerin bit düzeyinde birleşimiNumberStyles. Belirtilmesi gereken tipik bir değerdir Number.

Döndürülenler

Decimal tarafından stylebelirtildiği gibi içinde bulunan sayıya s eşdeğer bir sayıdır.

Özel durumlar

s, null değeridir.

style bir NumberStyles değer değildir.

-veya-

styleAllowHexSpecifier değeridir.

s doğru biçimde değil.

sDecimal.MinValue değerinden küçük veya Decimal.MaxValue değerinden büyük bir sayıyı temsil eder

Örnekler

Aşağıdaki kod örneği, Parse(String, NumberStyles) en-US kültürünü kullanarak değerlerin Decimal dize gösterimlerini ayrıştırmak için 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 parametresinde s izin verilen stil öğelerini (binlik ayırıcılar, boşluk ve para birimi simgeleri gibi) tanımlar. Numaralandırmadaki NumberStyles bit bayraklarının bir bileşimi olmalıdır. Aşağıdaki NumberStyles üyeler desteklenmez:

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

[ws] [$] [sign] [rakamlar,]rakamlar[.kesirli-basamaklar][e[işaret]rakamlar][ws]

Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.

Öğe Açıklama
Ws İsteğe bağlı beyaz boşluk. Bayrağı içeriyorsa, başında boşluk ve sstyle bayrağı içeriyorsa sonunda sstyleNumberStyles.AllowTrailingWhite görüntülenebilir.NumberStyles.AllowLeadingWhite
$ 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. Bayrağı içeriyorsa geçerli kültürün NumberStyles.AllowCurrencySymbol para birimi simgesi içinde sstyle görünebilir.
sign İsteğe bağlı bir işaret. İşaret, bayrağını içeriyorsa öğesinin sstyleNumberStyles.AllowLeadingSign başında ve bayrağını içeriyorsa NumberStyles.AllowTrailingSign sonunda sstyle görüntülenebilir. Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirs.
Basamak 0 İle 9 arasında değişen bir basamak dizisi.
, Kültüre özgü binler basamaklarını ayıran simge. bayrağını içeriyorsa geçerli kültürün binlik ayırıcısı NumberStyles.AllowThousands içinde styles görüntülenebilir.
. Bir kültüre özgü ondalık nokta sembolü. bayrağını style içeriyorsa geçerli kültürün NumberStyles.AllowDecimalPoint ondalık noktası simgesi içinde s görüntülenebilir.
kesirli basamaklar 0 İle 9 arasında değişen bir basamak dizisi. Kesirli basamaklar yalnızca style bayrağını NumberStyles.AllowDecimalPoint içeriyorsa içinde s görüntülenebilir.
E Değerin üstel gösterimde temsil edildiğini gösteren 'e' veya 'E' karakteri. parametresi, s bayrağını içeriyorsa üstel gösteriminde style bir sayıyı NumberStyles.AllowExponent temsil edebilir.

Not

içindeki s sonlandırıcı NUL (U+0000) karakterleri, bağımsız değişkenin değerinden style bağımsız olarak ayrıştırma işlemi tarafından yoksayılır.

Yalnızca basamak içeren bir dize (stile None karşılık gelir) türün aralığındaysa Decimal her zaman başarıyla ayrıştırılır. Kalan NumberStyles üyeler, giriş dizesinde mevcut olması gerekmeyen ancak gerekli olmayan öğeleri denetler. Aşağıdaki tablo, tek tek NumberStyles üyelerin içinde sbulunabilecek öğeleri nasıl etkilediğini gösterir.

NumberStyles değeri Basamaklara olarak s bileşeninde izin verilen öğeler
None Yalnızca rakamlar öğesi.
AllowDecimalPoint . ve kesirli basamaklar öğeleri.
AllowExponent parametresi üstel s gösterimi de kullanabilir. Bu bayrak, E basamaklarıbiçimindeki değerleri destekler; Pozitif veya negatif işaretler ve ondalık ayırıcı sembolleri gibi öğelerle dizeleri başarıyla ayrıştırmak için ek bayraklar gerekir.
AllowLeadingWhite başındaki sws öğesi.
AllowTrailingWhite sonundaki sws öğesi.
AllowLeadingSign başındaki ssign öğesi.
AllowTrailingSign sonundaki ssign öğesi.
AllowParentheses Sayısal değeri kapsayan parantez biçimindeki işaret öğesi.
AllowThousands , öğesi.
AllowCurrencySymbol $ öğesi.
Currency Tüm. s parametresi onaltılık bir sayıyı veya üstel gösterimi olan bir sayıyı temsil edemez.
Float başındaki veya sonundaki sws öğesi, öğesinin sbaşındaki işareti ve . simgesi. parametresi üstel s gösterimi de kullanabilir.
Number ws, signve ,. öğeleri.
Any Dışındaki s 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 nesnedeki biçimlendirme bilgileri kullanılarak ayrıştırılır. Daha fazla bilgi için bkz. CurrentInfo.

A Decimal , 29 basamaklı duyarlıklara sahiptir. s 29'dan fazla basamağı olan, ancak kesirli bölümü olan ve aralığı MaxValueMinValueiçinde olan bir sayıyı temsil ederse, sayı yuvarlanır, yuvarlanır, kırpılmaz ve en yakına yuvarlama kullanılarak 29 basamağı olur.

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

Ayrıca bkz.

Şunlara uygulanır

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

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

Döndürülenler

Decimal tarafından providerbelirtildiği gibi içinde bulunan sayıya s eşdeğer bir sayıdır.

Uygulamalar

Özel durumlar

s, null değeridir.

s doğru biçimde değil.

sDecimal.MinValue değerinden küçük veya Decimal.MaxValue değerinden büyük bir sayıyı temsil eder.

Örnekler

Aşağıdaki örnek, bir Web formunun düğme tıklamalı olay işleyicisidir. Kullanıcının yerel ayarını belirlemek için özelliği tarafından HttpRequest.UserLanguages döndürülen diziyi kullanır. Ardından bu yerel ayara karşılık gelen bir CultureInfo nesnenin örneğini oluşturur. Bu NumberFormatInfo nesneye CultureInfo ait olan nesne daha sonra kullanıcının girişini bir Decimal değere Parse(String, IFormatProvider) dönüştürmek için 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

Yöntemin Parse(String, IFormatProvider) bu aşırı yüklemesi genellikle çeşitli yollarla biçimlendirilebilen metni bir Decimal değere dönüştürmek için kullanılır. Örneğin, bir kullanıcı tarafından bir HTML metin kutusuna girilen metni 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çlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.

Öğe Açıklama
Ws İsteğe bağlı beyaz boşluk.
sign İsteğe bağlı bir işaret.
Basamak 0 İle 9 arasında değişen bir basamak dizisi.
, Kültüre özgü binler basamaklarını ayıran simge.
. Bir kültüre özgü ondalık nokta sembolü.
kesirli basamaklar 0 İle 9 arasında değişen bir basamak dizisi.

s parametresi, stil kullanılarak NumberStyles.Number yorumlanır. Bu, boşluk ve binlik ayırıcılarına izin verildiği, ancak para birimi simgelerine izin verilmediği anlamına gelir. içinde sbulunabilecek öğeleri (para birimi simgeleri, binlik ayırıcılar ve boşluk gibi) açıkça tanımlamak için yöntemini kullanın Decimal.Parse(String, NumberStyles, IFormatProvider) .

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

Nesnenin Decimal 29 basamaklı duyarlık değeri vardır. s 29'dan fazla basamağı olan, ancak kesirli bölümü olan ve aralığı MaxValueMinValueiçinde olan bir sayıyı temsil ederse, sayı yuvarlanır, yuvarlanır, kırpılmaz ve en yakına yuvarlama kullanılarak 29 basamağı olur.

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

Ayrıca bkz.

Şunlara uygulanır

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

içinde utf8Textbulunabilecek sayı stillerinin bit düzeyinde birleşimi.

provider
IFormatProvider

hakkında utf8Textkültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

Döndürülenler

ayrıştırma utf8Textsonucu.

Uygulamalar

Şunlara uygulanır

Parse(ReadOnlySpan<Char>, 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 span gösterimini eşdeğerine Decimal 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

içinde sbulunabilecek stil öğelerini gösteren değerlerin bit düzeyinde birleşimiNumberStyles. Belirtilmesi gereken tipik bir değerdir Number.

provider
IFormatProvider

IFormatProvider biçimi shakkında kültüre özgü bilgiler sağlayan bir nesne.

Döndürülenler

Decimal ve providertarafından style belirtildiği gibi içinde s bulunan sayıya eşdeğer 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 eşdeğerine Decimal 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

içinde sbulunabilecek stil öğelerini gösteren değerlerin bit düzeyinde birleşimiNumberStyles. Belirtilmesi gereken tipik bir değerdir Number.

provider
IFormatProvider

IFormatProvider biçimi shakkında kültüre özgü bilgiler sağlayan bir nesne.

Döndürülenler

Decimal ve providertarafından style belirtildiği gibi içinde s bulunan sayıya eşdeğer sayıdır.

Uygulamalar

Özel durumlar

s doğru biçimde değil.

sDecimal.MinValue değerinden küçük veya Decimal.MaxValue değerinden büyük bir sayıyı temsil eder.

s, null değeridir.

style bir NumberStyles değer değildir.

-veya-

styleAllowHexSpecifier değeridir.

Örnekler

Aşağıdaki örnek, değerlerin style dize gösterimlerini Decimal ayrıştırmak için çeşitli 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 s başarılı olması için parametrenin izin verilebilen biçimini tanımlar. Numaralandırmadaki NumberStyles bit bayraklarının bir bileşimi olmalıdır. Aşağıdaki NumberStyles üyeler desteklenmez:

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

[ws] [$] [sign] [rakamlar,]rakamlar[.kesirli-basamaklar][e[işaret]rakamlar][ws]

Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.

Öğe Açıklama
$ Kültüre özgü para birimi simgesi. Dizedeki konumu, parametresinin yöntemi provider tarafından CurrencyNegativePattern döndürülen nesnenin NumberFormatInfo ve CurrencyPositivePattern özellikleri tarafından GetFormat tanımlanır. Bayrağı içeriyorsa NumberStyles.AllowCurrencySymbol para birimi simgesi içinde sstyle görünebilir.
Ws İsteğe bağlı beyaz boşluk. Bayrağı içeriyorsa boşluk başında sstyle ve bayrağı içeriyorsa sonunda sstyleNumberStyles.AllowTrailingWhite görüntülenebilir.NumberStyles.AllowLeadingWhite
sign İsteğe bağlı bir işaret. İşaret, bayrağını içeriyorsa başında sstyle ve bayrağını içeriyorsa NumberStyles.AllowLeadingSignNumberStyles.AllowTrailingSign sonunda sstyle görüntülenebilir. Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirs.
Basamak 0 İle 9 arasında değişen bir basamak dizisi.
, Kültüre özgü binler basamaklarını ayıran simge. tarafından tanımlanan provider kültürün binlik ayırıcısı bayrağını style içeriyorsa NumberStyles.AllowThousands içinde s görünebilir.
. Bir kültüre özgü ondalık nokta sembolü. bayrağını içeriyorsaNumberStyles.AllowDecimalPoint, ile provider tanımlanan kültürün ondalık nokta simgesi içinde sstyle görünebilir.
kesirli basamaklar 0 İle 9 arasında değişen bir basamak dizisi. Kesirli basamaklar yalnızca style bayrağı içeriyorsa NumberStyles.AllowDecimalPoint içinde görüntülenebilirs.
E Değerin üstel gösterimde temsil edildiğini gösteren 'e' veya 'E' karakteri. parametresi, s bayrağını içeriyorsa bir sayıyı üstel gösteriminde styleNumberStyles.AllowExponent gösterebilir.

Not

içindeki s sonlandırıcı NUL (U+0000) karakterleri, bağımsız değişkenin değerinden style bağımsız olarak ayrıştırma işlemi tarafından yoksayılır.

Yalnızca basamakları olan bir dize (stile None karşılık gelir) türün aralığındaysa Decimal her zaman başarıyla ayrıştırılır. Kalan NumberStyles üyeler giriş dizesinde bulunması gerekmeyen öğeleri denetler. Aşağıdaki tabloda, tek tek NumberStyles üyelerin içinde sbulunabilecek öğeleri nasıl etkilediği gösterilir.

NumberStyles değeri Basamaklara olarak s bileşeninde izin verilen öğeler
None Yalnızca digits öğesi.
AllowDecimalPoint . ve kesirli basamaklar öğeleri.
AllowExponent parametresi üstel s gösterimi de kullanabilir. Bu bayrak, E basamakları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 başındaki sws öğesi.
AllowTrailingWhite sonundaki sws öğesi.
AllowLeadingSign başındaki ssign öğesi.
AllowTrailingSign sonundaki ssign öğesi.
AllowParentheses Sayısal değeri kapsayan parantez biçimindeki sign öğesi.
AllowThousands , öğesi.
AllowCurrencySymbol $ öğesi.
Currency Tüm. s parametresi onaltılık bir sayıyı veya üstel gösterimi olan bir sayıyı temsil edemez.
Float başındaki veya sonundaki sws öğesi, ve simgesininsbaşında imzalar. parametresi üstel s gösterimi de kullanabilir.
Number ws, sign, , ve . öğeleri.
Any Dışındaki s tüm stiller onaltılık bir sayıyı temsil edemez.

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

Nesnenin Decimal 29 basamaklı duyarlık değeri vardır. s 29'dan fazla basamağı olan, ancak kesirli bölümü olan ve ile aralığında MaxValueMinValueolan bir sayıyı temsil ediyorsanız, sayı yuvarlanır, yuvarlanır, kırpılmaz ve en yakına yuvarlama kullanılarak 29 basamağı olur.

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

Ayrıca bkz.

Şunlara uygulanır